这段代码不是为我编译的: let countDown = [5L .. ?1L .. 0L];;
我有一本书(第33页)说它应该归还:
val countDown : int list = [5L; 4L; 3L; 2L; 1L; 0L]
编译器错误:
Program.fs(42,24): error FS0010: Unexpected character '?' in expression
>
> let countDown = [5L .. ?1L .. 0L];;
let countDown = [5L .. ?1L .. 0L];;
-----------------------^
Run Code Online (Sandbox Code Playgroud)
这本书错了.但为什么?它是对语言的更新吗?实现这个目标的方法是什么?
编辑:问题是?从PDF复制的-字符不是字符.
即使没有Igor建议的修改,您的原始代码也能正常工作:
Microsoft (R) F# 2.0 Interactive build 4.0.30319.1
Copyright (c) Microsoft Corporation. All Rights Reserved.
> let l = [ 10L .. -1L .. 0L ];;
val l : int64 list = [10L; 9L; 8L; 7L; 6L; 5L; 4L; 3L; 2L; 1L; 0L]
Run Code Online (Sandbox Code Playgroud)
一个可能的细微错误是,如果你(例如)粘贴了Word(或其他程序)中的代码,它可能已经-用一些看起来相同的其他类型的破折号替换了符号,但实际上有不同的代码.
打破代码的另一种方法是删除一些空格 - 例如,在..和之间必须有一个空格-1L.否则,我认为没有任何理由不起作用.
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |