Як я можу скористатися функцією swift у Терміналі?


108

Я читаю Що нового в Xcode 6 . У статті представлена ​​нова функція про Xcode 6, і вона говорить:

Командний рядок

Відладчик Xcode включає інтерактивну версію мови Swift, відому як REPL (Read-Eval-Print-Loop). Використовуйте синтаксис Swift для оцінки та взаємодії зі своїм запущеним додатком або написання нового коду в середовищі, подібному до сценарію. REPL доступний в межах LLDB в консолі Xcode або з терміналу.

Я хочу знати, як отримати відповідь?


3
Ось стаття, яку я написав про це. medium.com/swift-programming/…
Сантош

Ви також можете використовувати його в Інтернеті, якщо вам подобається repl.it/languages/swift
Amjad Masad

Відповіді:


135
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

тоді ви можете зробити одне з таких:

xcrun swift 
lldb --repl

Станом на Xcode 6.1 - введення swiftв термінал також запускає REPL.


2
... і щоб вийти, наберіть Ctrl+ d.
arve0

57

Крім того, якщо ви не хочете зіпсувати ваше поточне середовище розробників, ви можете просто запустити:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift

30
Або ви можете навіть зробити цей крок далі і додати це до свого ~/.bash_profile:alias swift="/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift"
Девід Бек

6
Щоб мати можливість використовувати OS X SDK, вам також потрібно вказати шлях до нього:/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -sdk /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
Linus Unnebäck

Дякую за ідею, Девід. Я додав це до профілю, але я продовжую отримувати Немає такого файлу чи каталогу, навіть якщо він є прямо там, і дозволи є -rwxr-xr-x@ 1 mark2 admin 33557440 31 May 14:43 swift. Я не такий сильний у підрозділі. Хтось може бачити, що не так?
MarkAurelius

Використання xcrun --find swiftдля отримання шляху буде набагато більше доказом у майбутньому
Майк Веллер

1
xcrun --toolchain com.apple.dt.toolchain.Swift_2_3 swiftнабагато краще. Відповідь про походження тут: stackoverflow.com/a/36254848/5768974
Puttin

42

Крок 1: Відкрийте термінал
Крок 2: Введіть "стрімкий"
крок 3: 3 кроку немає

Приклад:

GoldCoast:~ macmark$ swift
Welcome to Swift!  Type :help for assistance.
  1> println("Hello, world")
Hello, world
  2> var myVariable = 42
myVariable: Int = 42
  3> myVariable = 50
  4> let myConstant = 42
myConstant: Int = 42
  5> println(myVariable)
50
  6> let label = "The width is "
label: String = "The width is "
  7> let width = 94
width: Int = 94
  8> let widthLabel = label + String(width)
widthLabel: String = "The width is 94"
  9> :exit

GoldCoast:~ macmark$ 

Хоча ви можете продовжувати використовувати xcrun swift, з Swift 2.1 далі ви можете просто запустити swiftз командного рядка.
тембо

Мій приклад - зі Swift 1.0 у липні 2014 року. Він працював без xcrun з тих пір для мене.
MacMark

15

Таким же чином, як і запуск Swift з терміналу, ви також можете виконувати сценарії. Просто використовуйте наступний шебанг і запустіть свій сценарій. ( За Крісом Леттнером , творцем компанії Swift)

#!/usr/bin/env xcrun swift -i

6
Згідно з XCode 6 Beta 5 -iпрапор було видалено і призведе до помилки. Просто відпустіть і використовуйте #!/usr/bin/env xcrun swiftзамість цього.
Jeehut

Кожен, хто хоче грати зі Swift 2.3 у Xcode 8, не повинен пропускати stackoverflow.com/a/36254848/1298043
Puttin

15

У Xcode 6.1.1 із встановленими інструментами командного рядка ви можете виконувати сценарії, посилаючись безпосередньо на /usr/bin/swift такий спосіб:

#!/usr/bin/swift

let variable: String = "string"
print("Test \(variable)")

Підтвердьте це, що працюєте зі швидким 2.1.1 (встановлення xcode 7.2)
Thibaut

1
Кожен, хто хоче грати зі Swift 2.3 у Xcode 8, не повинен пропускати stackoverflow.com/a/36254848/1298043
Puttin

10

Якщо хтось цікавиться простим шебангом сценарію Swift:

#!/usr/bin/env xcrun --sdk macosx swift

Якщо потрібна конкретна цільова версія

#!/usr/bin/env xcrun --sdk macosx swift -target x86_64-macosx10.11

Якщо потрібна певна ланцюжок інструментів (наприклад, ви хочете використовувати Swift 2.3, але ви використовуєте Xcode 8)

#!/usr/bin/env xcrun --toolchain com.apple.dt.toolchain.Swift_2_3 --sdk macosx swift -target x86_64-macosx10.11

Якщо ви хочете використовувати Swift 2.2 у своєму Xcode 7.3.1, припустимо, що Xcode 7.3.1 знаходиться за адресою /Applications/Xcode7.app

sudo xcode-select -s /Applications/Xcode7.app/
xcrun --sdk macosx swift

відтепер змінився стандартний каталог розробників за замовчуванням, ви можете перевірити це, використовуючи:

xcode-select -p

Якщо ви хочете використовувати знімки, надані Swift.org , вам не слід пропускати Установку тут .


як я вперше відповів у сценарії Run swift від проекту Xcode iOS як фаза збірки


8

** оновлення станом на xcode6 beta 4 **

це також можна зробити в налаштуваннях xcode. просто перейдіть до xcode -> настройки -> місця.

Для інструментів командного рядка просто виберіть потрібну версію з параметрів випадаючого списку, див. малюнок нижче. (swift вимагає, щоб шлях був xcode6).

екран інструментів командного рядка

Я також залишу свою попередню відповідь нижче.


те, що сказав Каан, і ви також можете використовувати яблучний сценарій, щоб зробити просту програму, щоб ви могли використовувати її для перемикання вперед і назад.

відкрити яблучний скрипт> вставити цей код нижче та експортувати його як додаток, так що лише одним клацанням миші ви можете перейти на шлях за замовчуванням або бета-шлях (щоб скористатися швидким)

set xcode6Path to "xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer"
set xcodeDefaultPath to "xcode-select -switch /Applications/Xcode.app/Contents/Developer"

display dialog "set xcode sdk path to " buttons {"xcode 6", "default"} default button 1
copy result as list to {buttonPressed}
if buttonPressed is "default" then
    try
        do shell script xcodeDefaultPath with administrator privileges
    end try
else
    try
        do shell script xcode6Path with administrator privileges
    end try
end if

потім запустіть> xcrun swift

відмова від відповідальності

  1. сценарій передбачає, що у вас встановлено і xcode6-beta & xcode5.
  2. якщо ви новий розробник, який випробовує лише xcode6beta, вам не знадобиться жоден сценарій чи шлях налаштування вручну. просто запустіть, xcrun swiftяк шлях для вас уже встановлений.
  3. коли xcode6 нарешті буде випущений, вам потрібно буде скинути шлях до цього типового додатка та не використовувати його знову.

У мене було встановлено XCode 5 і тепер "оновлено" (= замінено) на XCode 6. Чи є спосіб повернути назад 5.x? З цим рішенням?
Маттіас Макс

що означає повернути 5.x? xcode6 GM або випуск додатка замінять xcode5.
nsuinteger

6

Після встановлення офіційного випуску Xcode 6.1 з'являється swiftкоманда в /usr/bin/swift.

Майте на увазі, що якщо у вас Python відрізняється від поставленого Apple Python у шляху, це swiftможе не вдатися ImportError: No module named site. У цьому випадку переконайтеся, що ви робите, export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbinперш ніж дзвонити swift.


5

Команда xcrun використовуватиме змінну середовища DEVELOPER_DIR для заміни поточно вибраної установки Xcode (як встановлено з xcode-select). Ви можете використовувати це для побудови єдиної команди, яка запустить стрімко в командному рядку і поставить вас у відповідь. Це виглядає приблизно так:

/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift 

і ви можете це псевдонімом просто "швидко":

alias swift="/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift"

Як цікаву сторону зауваження, ви можете використовувати той самий вид виклику для запуску швидкого сценарію, як і ви використовуєте bash або python, додавши -i:

#!/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift -i

println("Hello World!")

Звичайно, щойно Xcode 6 буде офіційно випущений, і ви перейдете на це як інструменти для розробників за замовчуванням, ви можете скинути біти DEVELOPER_DIR = .. і просто використовувати "xcrun swift".


4

переконайтеся, що ви встановили xcode 6.0 , але не 6.1

Якщо ви отримаєте помилку:

<unknown>:0: error: the SDK 'MacOSX10.9.sdk' does not support Swift

просто біжи

xcrun --sdk iphonesimulator8.0 swift

або ти можеш

export SDKROOT="iphonesimulator8.0" 

і потім

xcrun swift

Використовуйте " xcodebuild -showsdks", щоб перелічити доступні імена SDK.

якщо ви встановите xcode 6.1 , просто

sudo xcode-select -s /Applications/*your-Xcode-6.1-path.app*/Contents/Developer
xcrun swift

2

Для XCode6 запустіть ці команди:

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/

$ xcrun swift

Якщо ви отримаєте помилку:

<unknown>:0: error: the SDK 'MacOSX10.9.sdk' does not support Swift

спробуйте:

xcrun swift -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk

1

відкрити термінал,

$sudo xcode-select -switch /Applications/Xcode6-Beta6.app/Contents/Developer

Примітка:Xcode6-Beta6.app слід замінити на відповідну версію ви встановили

Потім поставте цю лінію alias swift='xcrun swift' в~/.bash_profile

І,

$source ~/.bash_profile

$swift

Ось так!


1

За допомогою Swift REPL (Read Eval Print Loop).

Розробники, знайомі з інтерпретованими мовами, почуватимуться комфортно в цьому командному рядку, і навіть досвідчені розробники знайдуть кілька унікальних функцій

Запустіть Terminal.app і введіть швидку та натисніть клавішу Enter. Потім ви опинитесь у швидкій відповіді.

        1> print("Hello Swift REPL")
     Hello Swift REPL
        2> 10 + 20
     $R0: Int = 30
        3> var name = "Yogendra Singh"
     name: String = "Yogendra Singh"
        4> print(name)
     Yogendra Singh
        5>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.