Luk*_*nek 3 bash terminal swift
我知道有 Swift REPL 和 Xcode 游乐场,但我想知道 Swift 中是否有替代方案,ruby -e "<code>"其中sh -c "<code>"给定的一行代码将作为命令的结果执行?
没有直接的等效项(您可以使用 向swift命令询问其选项,swift --help然后看看有没有像 Ruby 那样的选项-e)。
但有一个解决方法。
echo您可以使用and |(“管道”)直接将 Swift 表达式传递给编译器,如下所示:
echo "print(42)" | swift
Run Code Online (Sandbox Code Playgroud)
结果:
欢迎使用 Apple Swift 版本 2.1.1(“700.1.101.9 700.1.78”)。输入 :help 寻求帮助。
42
我想这与您正在寻找的行为类似。
我们注意到它总是打印介绍语句,但是有一种方法可以解决这个问题,通过-在命令末尾添加,如下所示:
echo "print(42)" | swift -
Run Code Online (Sandbox Code Playgroud)
结果:
42
使用文字字符串时,转义双引号:
echo "print(\"hello\")" | swift -
Run Code Online (Sandbox Code Playgroud)
结果:
你好
您可以执行任何表达式,甚至循环:
echo "for num in 1...5 { print(num) }" | swift -
Run Code Online (Sandbox Code Playgroud)
结果:
1
2
3
4
5
ETC。
它仍然是 REPL,因此它会提供有关变量的反馈(省略-最后的技巧),例如:
echo "let x = 42;print(x)" | swift
Run Code Online (Sandbox Code Playgroud)
结果:
欢迎使用 Apple Swift 版本 2.1.1(“700.1.101.9 700.1.78”)。输入 :help 寻求帮助。
42
x:智力 = 42