Что эквивалентно для быстрого REPL Python python -i thisfiletoload.py? Спасибо. то есть
python -i thisfiletoload.py
в командной строке. Что такое быстрый эквивалент REPL?
Что эквивалентно для быстрого REPL Python python -i thisfiletoload.py? Спасибо. то есть
python -i thisfiletoload.py
в командной строке. Что такое быстрый эквивалент REPL?
Раньше в Swift был флаг -i
«input», но этот флаг устарел и больше не нужен.
Запуск swift [file.swift]
из командной строки приведет к желаемому поведению.
test.swift
:
println("hello")
let x = 1
println("x = \(x)")
Выход консоли:
➜ Test swift test.swift
hello
x = 1
С -i
:
➜ Test swift -i test.swift
<unknown>:0: error: the flag '-i' is no longer required and has been removed; use 'swift input-filename'
Версия:
➜ Test swift --version
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
Target: x86_64-apple-darwin14.3.0
Я смог сделать это, только сначала преобразовав файл в модуль.
$ swiftc filename.swift -emit-library -sdk $( xcrun --sdk macosx --show-sdk-path) -emit-module -module-link-name MyCode -module-name MyCode -lSystem
Это скомпилирует ваш файл и создаст .dylib и .swiftmodule в текущем каталоге (к которому у вас, конечно, должен быть доступ для чтения и записи). Затем из того же каталога просто:
$ swift -L. -I.
Добро пожаловать в Apple Swift версии 5.2.2 (swiftlang-1103.0.32.6 clang-1103.0.32.51). Введите :help для получения помощи.
1> import MyCode
2> /// Begin using your module's code...
В качестве функции .bashrc вы можете:
repl_mod () {
SDK=$( xcrun --sdk macosx --show-sdk-path)
MODNAME=${1%.swift}
$( xcrun -f swiftc) $1 -emit-library -sdk $SDK -emit-module -module-link-name $MODNAME -module-name $MODNAME -lSystem
}
Что создаст модуль в текущем каталоге, названный в честь вашего имени файла:
repl_mod mycode.swift
swift -L. -I.
...
>1 import mycode
Если вы измените команду для вывода ее результатов не в текущий каталог, обязательно передайте это изменение в REPL через аргументы -L
и -I
.