Size: a a a

Scala User Group

2021 March 01

ΛВ

Λнтон Войцишевский... in Scala User Group
object MyObj:
 def apply(int: Int): Int = int + 3

val jnt = MyObj(3) //6
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Taika Tytto
Первое упоминание - первый вызов?
Первое упоминание
источник

Oℕ

Oleg ℕizhnik in Scala User Group
обращение к любому полю или методу, присвоение или передача объекта куда-то
не уверен относительно упоминания типа внутри объекта, но в scala3 это было бы очень логично, т.к. soundness DOT существенно полагается на то, что все элементы пути к типу вычислены
источник

TT

Taika Tytto in Scala User Group
A.scala

Object blah {}

B.scala

Import A.blah

blah.foo <- тут?
источник

S

Sooqa in Scala User Group
Oleg ℕizhnik
каждый объект имеет свой тип, и писать
val myVal : Foo[X] with Bar[A, B] with ...
= new Foo[X](...) with Bar[A, B]  with ....

дольше и проблемнее, чем
 object myObj extends Foo[X](...) with Bar[A,B ] with ....

мало того у объектов "ленивая инициализация" построенная на механизме инициализации в jvm, т.е.
myVal будет инициализирован в момент, когда исполнение дойдёт до объявления myVal, а myObj - при первом упоминании
Можно задать тайпалиас
Тоесть ленивость определяется на этапе описания объекта, а не на этапе использования?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sooqa
Можно задать тайпалиас
Тоесть ленивость определяется на этапе описания объекта, а не на этапе использования?
ленивость инициалиации объектов - это часть спецификации scala
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sooqa
Можно задать тайпалиас
Тоесть ленивость определяется на этапе описания объекта, а не на этапе использования?
нельзя задать тайпалиас для цепочки наследования и в тайпалиасе нельзя аргументы классу (и трейту) указать
источник

Oℕ

Oleg ℕizhnik in Scala User Group
т.е. вы не можете написать
type Foo = Bar with Baz
и потом
object Quux extends Foo
источник

S

Sooqa in Scala User Group
странная штука, эта скала
источник

Oℕ

Oleg ℕizhnik in Scala User Group
+
источник

Oℕ

Oleg ℕizhnik in Scala User Group
плюс есть case object, которые генерируют ещё кучу штуки подобно case class
источник

Oℕ

Oleg ℕizhnik in Scala User Group
и package object упоминавшийся, который для симуляции топлевела используется
источник

Oℕ

Oleg ℕizhnik in Scala User Group
тоже вещи, которые не эквивалентны валам
источник

S

Sooqa in Scala User Group
печально. я надеялся что такое только в c++
источник

S

Sooqa in Scala User Group
(
источник

E

Elijah in Scala User Group
а что вы пытаетесь сделать? гетерогенный лист?
источник

S

Sooqa in Scala User Group
спасибо ответившим
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sooqa
печально. я надеялся что такое только в c++
какое такое
источник

S

Sooqa in Scala User Group
Elijah
а что вы пытаетесь сделать? гетерогенный лист?
да, просто поковырять скалу для себя.
источник

S

Sooqa in Scala User Group
Oleg ℕizhnik
какое такое
много фич, которые выглядят резонно, но чем дольше на них смотришь, тем больше понимаешь что в языке явно не хватает унификации
источник