当前位置: 首页 > news >正文

mojo初体验

目录标题

  • 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 = "mojo"let 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在本地执行,目前已加入白名单,等待中。

http://www.lryc.cn/news/159021.html

相关文章:

  • python3 重启docker方法
  • 【js】js中深拷贝与浅拷贝:
  • 大文件上传demo,前端基于Uppy,后端基于koa
  • typeScript--[函数定义]
  • Spring初始化项目
  • Opencv 图像金字塔----高斯和拉普拉斯
  • gitLab(git)误提交命令
  • Rust个人学习笔记2
  • 深入浅出Android同步屏障机制
  • 工程管理系统简介 工程管理系统源码 java工程管理系统 工程管理系统功能设计
  • Python 专栏目录索引
  • SSM学习
  • .net项目部署Docker
  • Ubuntu无法加载exfat的USB存储设备
  • 【计算机网络】网络编程接口 Socket API 解读(2)
  • 【黄啊码】PHP如何防止重复提交
  • 2594. 修车的最少时间
  • vue 使用qrcode生成二维码并可下载保存
  • 网络融合的发展思路
  • 报考浙江工业大学MBA项目如何选择合适的辅导班?
  • 算法训练第五十八天
  • 如何快速生成一个H5滑动的卡片(单页和分页都有)
  • 嵌入式开发笔试面试
  • 2023国赛数学建模B题思路分析 - 多波束测线问题
  • thinkphp6 入门(5)-- 模型是什么 怎么用
  • Hadoop HDFS 高阶优化方案
  • 通俗易懂讲解大模型:Tokenizer
  • nested exception is java.io.FileNotFoundException
  • ARM编程模型-常用指令集
  • MAC M2芯片执行yolov8 + deepsort 实现目标跟踪