我是 Mojo 新手,刚刚开始学习该语言。我正在 Mac mini 的 Jupyter 笔记本上练习一些代码。我的 Mojo 版本是 24.4.0
案例1:
下面的 ListLiterals 简单代码给出了打印语句的错误
var fruits: ListLiteral[StringLiteral,StringLiteral,StringLiteral]=["apple", "banana", "cherry"]
print(fruits)
var numbers: ListLiteral[Int,Int, Int] = [1, 2, 3]
print(numbers)
Error: Invalid call to 'print': callee with non-empty variadic pack argument expects 0 positional operands, but 1 was specified.
案例2:
变量声明中的let语句也不起作用?它们是否已从 mojo 中删除?对于像这样的简单代码行,我收到错误
use of unknown declaration let
:
let x = 5
我学习mojo的一些旧视频已经在他们的笔记本上成功使用了let,没有错误。我想知道它们是否是因为使用了不同版本的 mojo?
案例3:
字符串文字的串联在我的 Mojo 版本上不起作用,但在我学习 Mojo 的视频中再次使用:
#String Literals
#not working this way
var s8: StringLiteral = "Another String Literal"
s4 = "This is a string literal. Less space in memory and more efficient"
s5 = s4 + "and more text"
print(s5) # error given below
s6 = "And more text"
var s7 = s4.__add__(s6) # Even this doesn't work
s9 = s8 + s4 # Even this doesn't work
print(s7)
print(s9)
Error:
Failed to produce standalone archive: failed to lower module to LLVM IR for archive compilation, run LowerToLLVMPipeline failed/Users/ec2-user/actions-runner/_work/modular/modular/open-source/mojo/stdlib/stdlib/builtin/string_literal.mojo:95:45: error: failed to legalize operation 'pop.string.concat' that was explicitly marked illegal
/Users/ec2-user/actions-runner/_work/modular/modular/open-source/mojo/stdlib/stdlib/builtin/string_literal.mojo:95:45: note: see current operation: %101 = "pop.string.concat"(%100, %14) : (!kgen.string, !kgen.string) -> !kgen.string
Expression [25]:5:9: called from
s5 = s4 + "and more text"
^
那么我错过了什么。 ?有人可以解释一下上面的 3 种情况吗?
要在 Jupyter Notebook 中运行 Python 以外的代码,您必须安装该语言的内核,在本例中为 Mojo 内核。
这里有一个适用于 Linux 用户的链接,不知道它是否适用于您的系统。