苏州做网站好的公司,网站建设的安全措施,清华建设工程有限公司公司网站,做网站盈利方式目录标题 mojo初体验试用地址变量定义参数可变性和所有权Structures后续 mojo初体验
试用地址
https://www.modular.com/get-started 与python基础语法很相似。 变量定义
let定义不可变变量var定义可变变量
参数可变性和所有权
下面是一个基本的函数#xff1a;
fn add… 目录标题 mojo初体验试用地址变量定义参数可变性和所有权Structures后续 mojo初体验
试用地址
https://www.modular.com/get-started 与python基础语法很相似。 变量定义
let定义不可变变量var定义可变变量
参数可变性和所有权
下面是一个基本的函数
fn add(x: Int, y: Int) - Int:return x y请注意上面的add()不会修改x or y它只会读取值。事实上正如所写的函数无法修改它们因为默认情况下fn参数是不可变的引用。
就参数约定而言这称为“借用”尽管这是函数的默认设置fn但您可以使用borrowed如下声明将其明确化其行为与直接使用add()完全相同
fn add(borrowed x: Int, borrowed y: Int) - Int:return x y如果您希望参数可变则需要声明参数约定为inout。这意味着对函数内部参数所做的更改在函数外部可见。 例如该函数可以修改原始变量
fn add_inout(inout x: Int, inout y: Int) - Int:x 1y 1return x yvar a 1
var b 2
c add_inout(a, b)
print(a)
print(b)
print(c)2 3 5 另一种选择是将参数声明为owned这为函数提供了该值的完全所有权它是可变的并保证唯一。这样函数可以修改值而不用担心影响函数外部的变量。例如
fn set_fire(owned text: String) - String:text return textfn mojo():let a: String mojolet b set_fire(a)print(a)print(b)mojo()mojo mojo 在这种情况下Mojo 会复制一份a并将其作为text参数传递。原来的a字符串仍然存在且完好。
总结 borrowed 为默认参数不可变 inout 参数可变 owned 参数可变保留原参数
Structures
Mojo 中struct与 Python 中class类似它们都支持方法、字段、运算符重载、元编程装饰器等。
后续
The Mojo SDK coming to your desktop soon! 九月初Mojo应该可以脱离playground在本地执行目前已加入白名单等待中。