Если я использую следующий код в Swift РЕПЛ, я получаю неожиданные результаты:Swift РЕПЛ Неожиданное поведение
1> func addA(s: String)->String {
2. return s + "a"
3. }
4.
5. func addB(s: String)->String {
6. return s + "b"
7. }
8>
9> println(addA(""))
a
10> println(addB(""))
b
11> println(addA(addB("")))
ba
12> let p = addA(addB(""))
p: ((String)) = {
_core = {
_baseAddress = 0x0000000100500060
_countAndFlags = 2
_owner = (instance_type = Builtin.RawPointer = 0x0000000100500040)
}
}
13> println(p)
ba
14> let q = "a" + "b"
q: String = "ab"
почему объявляющий p
производить такое поведение, при объявлении q
не?
Какое «поведение»? 'p' дает' ba'. Разве это не то, что вы ожидаете? Это похоже на правильный ответ. – matt
@matt, я понимаю, что поведение, на которое делается ссылка, - это массовое эссе от переводчика о том, что такое 'p', материал' core/base/blah/blah' :-) – paxdiablo
Ну, если вы работаете с REPL на некоторое время , что-то перестает быть «неожиданным», а @paxdiablo? – matt