- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
package test.sandbox
object Main {
def foo(implicit a: Int): Int = a * 2
def main(args: Array[String]): Unit = {
{
import Test._
val result = foo
println(s"Result1 = $result") // Result1 = 42
}
{
implicit val x = 16
println(s"Result2 = $foo") // Result2 = 32
}
}
}
object Test {
implicit val x: Int = 21
}
PolinaAksenova 16.08.2021 20:51 # 0
Staatssicherheit 16.08.2021 21:38 # +2
Пётр Сорокин? Пьер Суше? Прохор Старовер?
JloJle4Ka 17.08.2021 03:57 # 0
Staatssicherheit 17.08.2021 20:32 # +2
bormand 17.08.2021 20:33 # +3
JloJle4Ka 18.08.2021 03:33 # +1
bormand 16.08.2021 21:13 # +1
Tallybahn 16.08.2021 22:26 # 0
JloJle4Ka 17.08.2021 04:01 # 0
И Полиночка тоже сахарная, но не ``Scala'', а няшка! UwU
3.14159265 17.08.2021 04:25 # +3
Реально по каким правилам оно выводит? Почему аргумент называется «а» (implicit a: Int), а вяжет оно с «x»?
Ну да, чтобы программу невозможно было прочитать и разобраться — самое оно.
Чтобы она компилировалось вечность — наилучший вариант.
bormand 17.08.2021 08:30 # +2
Других переменных рядом не оказалось.
По маркеру implicit на этой переменной, вестимо. Походу можно одну из переменных в скопе так пометить и она будет юзаться для функций с implicit аргументом. Пиздецовая фича, конечно.
JloJle4Ka 17.08.2021 08:38 # +1
bormand 17.08.2021 09:46 # +1
3.14159265 17.08.2021 15:27 # 0
А там походу и тип может неявно конвертироваться?
implicit переменная может превращаться implicit функцией в какую-то подходящую для foo хрюкню.
bormand 17.08.2021 18:21 # 0
Нужно больше ёбаной магии!
З.Ы. Откуда я знаю, я же не скалолазка, выше просто моя гипотеза написана.
3.14159265 17.08.2021 18:45 # 0
https://www.geeksforgeeks.org/implicit-conversions-in-scala/
Ну и чем это лучше йажасцрипта?
Там хоть эти дибильные правила забиты на уровне стандарта.
А тут ещё и динамически меняются в зависимости от импорта разной хрюкни.
3.14159265 17.08.2021 04:29 # +4
Зато на SO нашёлся забавный говнопример, как можно легко и просто обосраться при рефакторинге или импорте:
После этой срани даже C++ выглядит просто и понятно.
Denya19 23.08.2021 18:24 # 0
Denya19 23.08.2021 18:58 # 0