diff options
| -rw-r--r-- | zh-cn/julia-cn.html.markdown | 40 | 
1 files changed, 24 insertions, 16 deletions
diff --git a/zh-cn/julia-cn.html.markdown b/zh-cn/julia-cn.html.markdown index 4e97d147..f54a4d4c 100644 --- a/zh-cn/julia-cn.html.markdown +++ b/zh-cn/julia-cn.html.markdown @@ -90,11 +90,13 @@ false  # 字符字面量可用 ' 创建  'a' +# 字符串使用 UTF-8 编码  # 可以像取数组取值一样用 index 取出对应字符 -ascii("This is a string")[1]  # => 'T'  +ascii("This is a string")[1] +# => 'T': ASCII/Unicode U+0054 (category Lu: Letter, uppercase)   # Julia 的 index 从 1 开始 :( -# 但是对 UTF-8 无效, -# 因此建议使用遍历器 (map, for loops, 等). +# 但只有在字符串仅由 ASCII 字符构成时,字符串才能够被安全的引索 +# 因此建议使用遍历器 (map, for loops, 等)  # $ 可用于字符插值:  "2 + 2 = $(2 + 2)" # => "2 + 2 = 4" @@ -105,7 +107,7 @@ using Printf  @printf "%d is less than %f\n" 4.5 5.3  # => 5 is less than 5.300000  # 打印字符串很容易 -println("I'm Julia. Nice to meet you!") +println("I'm Julia. Nice to meet you!") # => I'm Julia. Nice to meet you!  # 字符串可以按字典序进行比较  "good" > "bye" # => true @@ -138,9 +140,10 @@ SomeOtherVar123! = 6 # => 6  # 注意 Julia 的命名规约:  # -# * 变量名为小写,单词之间以下划线连接 "_" 。 +# * 名称可以用下划线「_」分割。 +#   不过一般不推荐使用下划线,除非不用变量名就会变得难于理解  # -# * 类型名以大写字母开头,单词以 CamelCase 方式连接。 +# * 类型名以大写字母开头,单词以 CamelCase 方式连接,无下划线。  #  # * 函数与宏的名字小写,无下划线。  # @@ -179,7 +182,7 @@ b # => [4,5,6]  a[1] # => 1 #  永远记住 Julia 的引索从 1 开始!而不是 0! -# 用 end 可以直接取到最后索引. 可用作任何索引表达式 +# 用 end 可以直接取到最后索引。它可以用在任何索引表达式中  a[end] # => 6  # 数组还支持 popfirst! 和 pushfirst! @@ -204,7 +207,7 @@ try      # =>  [1] getindex(::Array{Int64,1}, ::Int64) at .\array.jl:731      # =>  [2] top-level scope at none:0      # =>  [3] ... -    # => in expression starting at ...\LearnJulia.jl:188 +    # => in expression starting at ...\LearnJulia.jl:203      a[end + 1]       # => ERROR: BoundsError: attempt to access 7-element Array{Int64,1} at       # index [8] @@ -212,7 +215,7 @@ try      # =>  [1] getindex(::Array{Int64,1}, ::Int64) at .\array.jl:731      # =>  [2] top-level scope at none:0      # =>  [3] ... -    # => in expression starting at ...\LearnJulia.jl:196 +    # => in expression starting at ...\LearnJulia.jl:211  catch e      println(e)  end @@ -222,6 +225,8 @@ end  # 可以用 range 初始化数组  a = [1:5;]  # => 5-element Array{Int64,1}: [1,2,3,4,5] +# 注意!分号不可省略 +a2 = [1:5]  # => 1-element Array{UnitRange{Int64},1}: [1:5]  # 可以切割数组  a[1:3] # => [1, 2, 3] @@ -282,7 +287,7 @@ d # => 5  e # => 4 -# 字典Dictionaries store mappings +# 字典用于储存映射(mappings)(键值对)  empty_dict = Dict()  # => Dict{Any,Any} with 0 entries  # 也可以用字面量创建字典 @@ -323,7 +328,7 @@ end  get(filled_dict, "one", 4)   # => 1  get(filled_dict, "four", 4)  # => 4 -# Sets 表示无序不可重复的值的集合 +# Set 表示无序不可重复的值的集合  empty_set = Set()  # => Set(Any[])  # 初始化一个带初值的 Set  filled_set = Set([1, 2, 2, 3, 4])  # => Set([4, 2, 3, 1]) @@ -417,7 +422,7 @@ end  ## 4. 函数  #################################################### -# 关键字 'function' 用于定义函数 +# 关键字 function 用于定义函数  # function name(arglist)  #   body...  # end @@ -553,7 +558,7 @@ typeof(DataType)  # => DataType  # Julia 并不只是静态的检查类型  # 用户还可以自定义类型 -# 就跟其它语言的 records 或 structs 一样 +# 就跟其它语言的 record 或 struct 一样  # 用 `struct` 关键字定义新的类型  # struct Name @@ -641,14 +646,17 @@ end  function meow(animal::Lion)      animal.roar # 使用点记号 '.' 访问属性  end +# => meow (generic function with 1 method)  function meow(animal::Panther)      "grrr"  end +# => meow (generic function with 2 methods)  function meow(animal::Tiger)      "rawwwr"  end +# => meow (generic function with 3 methods)  # 试试 meow 函数  meow(tigger)  # => "rawwwr" @@ -656,8 +664,8 @@ meow(Lion("brown", "ROAAR"))  # => "ROAAR"  meow(Panther()) # => "grrr"  # 回顾类型的层次结构 -Tiger <: Cat    # => false -Lion <: Cat     # => true +Tiger   <: Cat  # => false +Lion    <: Cat  # => true  Panther <: Cat  # => true  # 定义一个接收 Cat 类型的函数 @@ -733,7 +741,7 @@ fight(l::Lion, l2::Lion) = println("The lions come to a tie")  fight(Lion("RAR"), Lion("brown", "rarrr"))  # => The lions come to a tie -# Under the hood +# 深入编译器之后  # 你还可以看看 llvm 以及它生成的汇编代码  square_area(l) = l * l  # => square_area (generic function with 1 method)  | 
