В хода на Scala в Coursera (лекция 1.4, около 3 минути), Мартин Одерски казва, че изразът true && e
винаги се връща e
(e е всеки обект). И изражението false || e
също се връща e
, Той обяснява, че понякога последният израз не винаги се оценява.
Но когато изпълня тези изрази, получавам error: type mismatch
, За true && 5
взимам found: Int(5); required: Boolean
Скала еволюирала ли е напоследък или какво правя погрешно?
Отговори:
6 за отговор № 1e
стои булев израз.
Predicate: a boolean expression to be evaluated e.g. (x >= 4), (x != 0), etc
виждам https://sites.google.com/a/stonybrook.edu/functional-programming-scala/lecture-1-4
От Scala Справочник, точка 6.16 Условни изрази, дадени:
if (e1) e2 else e3
Очаква се условието e1 да съответства на типаБулева. Тогавашната част e2 и e3 от другата част се очаква да съответстват на очакваното тип на условния израз. Типът на условния израз е слабата най-малка горна граница (§3.5.3) на видовете e2 и e3.