在python3.14中测试mojo语言

  1. 登录python3.14容器,并安装mojo语言

    docker start python3143
    python3143
    docker exec -it python3143 bash
    pip install mojo
    Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
    Successfully installed click-8.3.1 mblack-26.1.0 mojo-0.26.1.0 mojo-compiler-0.26.1.0 mojo-lldb-libs-0.26.1.0 mypy-extensions-1.1.0 pathspec-1.0.4 platformdirs-4.9.2

mojo秘籍 网站上的例子 https://mojo-lang.com/miji/move/examples.html 来测试。

hello.mojo

复制代码
def main():
    print("Hello, world!")

定义函数语法和python相同, 但是不需要写调用main函数的语句,直接就能执行,build是编译成二进制文件,但不执行

复制代码
mojo hello.mojo
Hello, world!
mojo build hello.mojo
./hello
Hello, world!

mojo add.mojo
3.0

mojo mult.mojo
Nine-nine Multiplication Table
1 * 1 = 1       1 * 2 = 2       1 * 3 = 3       1 * 4 = 4       1 * 5 = 5       1 * 6 = 6       1 * 7 = 7       1 * 8 = 8       1 * 9 = 9
2 * 2 = 4       2 * 3 = 6       2 * 4 = 8       2 * 5 = 10      2 * 6 = 12      2 * 7 = 14      2 * 8 = 16      2 * 9 = 18
3 * 3 = 9       3 * 4 = 12      3 * 5 = 15      3 * 6 = 18      3 * 7 = 21      3 * 8 = 24      3 * 9 = 27
4 * 4 = 16      4 * 5 = 20      4 * 6 = 24      4 * 7 = 28      4 * 8 = 32      4 * 9 = 36
5 * 5 = 25      5 * 6 = 30      5 * 7 = 35      5 * 8 = 40      5 * 9 = 45
6 * 6 = 36      6 * 7 = 42      6 * 8 = 48      6 * 9 = 54
7 * 7 = 49      7 * 8 = 56      7 * 9 = 63
8 * 8 = 64      8 * 9 = 72
9 * 9 = 81
mojo fib.mojo
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 

前3个例子都顺利执行了。递归计算斐波那契数列的程序执行速度明显比python快。

第4个例子遇到问题

复制代码
mojo tri.mojo
/par/tri.mojo:2:17: error: use of unknown declaration 'StringableRaising'
struct Triangle(StringableRaising):
                ^~~~~~~~~~~~~~~~~
/usr/local/bin/mojo: error: failed to parse the provided Mojo source module

在mojo官方文档中查找StringableRaising,结果是最新版本 0.26.1已经废弃了它。在秘籍的github上提交问题后,很快收到作者回复,并给出了修正的代码 。就是把有问题的那句改成了如下:

复制代码
struct Triangle(Writable):

这个版本代码在mojo 0.26.1上正确执行了。

在python中安装的mojo不带REPL,如果不带参数执行mojo,结果报错

复制代码
mojo
error: couldn't find a REPL for mojo
相关推荐
John_ToDebug2 个月前
从 window.external 到 Mojo深度解析 Chromium 中 JS 与 C++ 的 7 种通信机制
javascript·chrome·mojo
沟通qq 19226382 个月前
探索 BMS 仿真:搭建电池管理系统的 Matlab 模型
mojo
John_ToDebug3 个月前
深入探索 Chrome 中渲染进程与浏览器进程之间的 Mojo IPC 通信机制
前端·chrome·mojo
1***Q7843 个月前
MCP在分布式计算中的任务调度
贪心算法·kubernetes·mojo
kkjt01304 个月前
从Java集合到云原生现代数据管理的演进之路
mojo
forestsea9 个月前
Maven 插件参数注入与Mojo开发详解
java·maven·mojo
~怎么回事啊~1 年前
chromium-mojo
mojo
WSSWWWSSW1 年前
mojo语言适合开发机器人控制系统么?
机器人·mojo
WSSWWWSSW1 年前
最新Modular公司之MAX和Mojo作者 克里斯·拉特纳简介
mojo