Подтвердить что ты не робот

Swift REPL: как импортировать, загружать, оценивать или требовать файл .swift?

В Swift REPL, как импортировать (a.k.a. загрузить, оценить, потребовать) типичный текст *.swift файл?

  • Я хочу использовать код из этого файла: ~/src/Foo.swift

  • Синтаксис вроде этого не работает: import ~/src/Foo.swift

Для сравнения:

  • Эквивалентное решение в Swift REPL для фреймворка: import Foundation

  • Эквивалентное решение в Ruby REPL для файла *.ruby: require "~/src/foo"

Это похожие вопросы, которые/нет/то, что я спрашиваю:

  • Как использовать/выполнить командную строку Swift script, исполняемый файл, модуль и т.д.

  • Как использовать/создавать игровые площадки XCode, проект, библиотеку, фреймворк и т.д.

  • Как запустить REPL с уже существующим списком файлов.

4b9b3361

Ответ 1

Вам нужно использовать -I, поэтому, если ваш файл modulename.swiftmodule находится в ~/mymodules, чем запуск swift с

swift -I ~/mymodules

а затем вы сможете импортировать свой модуль

import module name

Должно быть, это легко

Ответ 2

Просто вставьте строку shebang в верхней части вашего script:

#!/usr/bin/env xcrun swift

Ответ 3

Похоже, что невозможно импортировать файл и получить Xcode для использования REPL для него, используя предоставленные вами спецификации. Я думаю, вы все еще можете сделать это, создав правильную структуру, но это не совсем то, что вы искали.

Ответ 4

В быстром, вы не можете импортировать типичный файл *.swift.

Для Import Declaration может быть только следующий синтаксис:

"Import-declaration → attributesopt импорт import-kindopt import-path
 импорт-вид → титаны | структура | класс | перечисление | протокол | вар | FUNC
Import-path → import-path-identifier | импорт-путь-identifier.import-путь
Import-path-identifier → идентификатор | Оператор" на
От: Apple Inc. "Быстрый язык программирования (Swift 2)". IBooks.

который может быть описан как эти форматы:

import module
import import kind module. symbol name
import module. submodule

import head.swift несовместим с import import-kind module.symbol-name


Обычно компилируйте файлы, которые вы хотите импортировать в качестве рамки. Затем его можно рассматривать как модуль. используйте -F framework_directory/, чтобы указать путь поиска сторонних фреймворков.

  • Создайте файл. Например:

    // test.swift import headtest print("Hello World")

  • откройте терминал

  • перейдите в каталог, в котором вы создаете файл.
  • выполнить командную строку

    swift -F headtest test.swift

И сделано.