【问题标题】:Executing Swift code embedded into one line terminal command执行嵌入在一行终端命令中的 Swift 代码
【发布时间】:2015-12-18 14:44:56
【问题描述】:

我知道有 Swift REPL 和 Xcode 游乐场,但我想知道在 Swift 中是否有替代 ruby -e "<code>"sh -c "<code>" 的方式,其中给定的一行代码将作为命令的结果执行?

【问题讨论】:

    标签: xcode swift bash terminal


    【解决方案1】:

    没有直接的等价物(您可以使用swift --helpswift 命令询问它的选项,并看到没有像Ruby 的-e 这样的东西)。

    但是有一个解决方法。

    您可以使用 echo|(“管道”)将 Swift 表达式直接传递给编译器,如下所示:

    echo "print(42)" | swift
    

    结果:

    欢迎使用 Apple Swift 2.1.1 版(“700.1.101.9 700.1.78”)。输入 :help 寻求帮助。
    42

    我猜这与您正在寻找的行为相似。

    我们注意到它总是打印介绍句,但有一种方法可以解决这个问题,在命令末尾添加-,如下所示:

    echo "print(42)" | swift -
    

    结果:

    42

    使用文字字符串时,请转义双引号:

    echo "print(\"hello\")" | swift -
    

    结果:

    你好

    你可以执行任何表达式,甚至是循环:

    echo "for num in 1...5 { print(num) }" | swift -
    

    结果:

    1
    2
    3
    4
    5

    等等

    它仍然是 REPL,因此它会提供有关变量的反馈(省略最后的 - 技巧),例如:

    echo "let x = 42;print(x)" | swift
    

    结果:

    欢迎使用 Apple Swift 2.1.1 版(“700.1.101.9 700.1.78”)。输入 :help 寻求帮助。
    42
    x: 整数 = 42

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 2011-05-30
      • 2015-05-27
      • 2016-12-06
      • 2014-07-03
      • 1970-01-01
      相关资源
      最近更新 更多