JL学习日记 day2啦

今天的内容主要是复习整理JL的编程基础,以及部分的与py之间的对比。有不足之处,欢迎交流和讨论👏

新手入门

  • 1)打印 查看变量类型 查看变量地址
println("hello word") #打印
number = 42
typeof(number) #查看变量的类型
objectid(number) #查看变量的地址
  • 2)string和char
    使用" """" """包围起来得到字符串,使用' ' 包围起来得到char。不同与py,py没有专门的char类型。此外,JL的索引从1开始
    使用$ 得到格式化字符串,以将已有的变量插入一个字符串,也可以在字符串中代入表达式的值。
println("his age is $number.")
  • 3)数据结构
    元组()括起来得到一个元组,元组是不可不类型,不能改变。
myfavoriteanimals = ("penguins", "cats", "sugargliders")

字典 通过 Dict() 函数初始化字典,可以为空或者有键值对。

myphonebook = Dict("Jenny" => "867-5309", "Ghostbusters" => "555-2368")

数组 使用方括号 [ ] 括起元素集合来创建数组。数组是可变类型。

fibonacci = [1, 1, 2, 3, 5, 8, 13]
  • 4)循环
    while 循环语法
while <condition>
    <loop body>
end

for 循环语法:

for <var> in <loop iterable>
    <loop body>
end

与py类似,jl的for循环可以处理可迭代对象。

#嵌套循环的简写
for i in 1:m, j in 1:n
    B[i, j] = i + j
end
B
  • 5)条件判断
    if关键字语法
if <condition 1>
    <option 1>
elseif <condition 2>
    <option 2>
else
    <option 3>
end

三元运算符

a ? b : c

它等价于

if a
    b
else
    c
end

短路运算

a && b

ab 都为真的时候返回真。

当然了,如果 a 是假的话,Julia 不需要判断 b 的真假就可以判断整体为假;
这就“短路”了,直接返回 false

  • 6)函数
    声明函数的方法:
    1.使用 functionend 关键字
function f(x)
    x^2
end
  1. 直接使用 =
f2(x) = x^2

3.匿名函数

f3 = x -> x^2
f3(10)

4.julia的鸭子类型:在未指定函数参数的类型时,不管输入参数是什么类型,只要函数体可以正常执行,那么 Julia 函数就可以应用在这种类型的参数上。
5.原地修改和非原地修改(Mutating vs. non-mutating functions):约定:函数名以 ! 结束的原地修改传入的变量,函数名非以 ! 结束的则不会改变传入的变量。

v = [3, 5, 2]
sort(v) #会返回一个新的,排序好的数组 v本身不会改变
sort!(v) #v会被原地修改
  • 6)包
    Julia 有超过 2000 个登记在案的包。我们还可以很容易地通过 PyCallRcall 调用 Python 或 R。这意味着不必等到 Julia 的生态完全成熟就能迁移现有项目到 Julia,而且迁移到 Julia 并不意味着放弃你在其他语言中惯用的包或者库!查看全部可获得的包,请看
    https://pkg.julialang.org/
    添加包的方法
using Pkg
Pkg.add("Example")
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐