santander código codigo code bic bbva bancoppel banamex aba swift immediate-mode

codigo - código swift o aba



¿Cómo incluir el archivo.swift de otro archivo.swift en un modo inmediato? (2)

Tener un archivo con la función de definición de bar.swift . bar.swift :

func bar() { println("bar") }

Y un script para ejecutarse en modo inmediato foo.swift :

#!/usr/bin/xcrun swift -i bar()

¿Cómo se importa la bar.swift bar() de foo.swift desde foo.swift ?


Creo que la respuesta ahora mismo es que no puede dividir el código en varios archivos a menos que compile el código. La ejecución con #!/usr/bin/swift solo es posible para scripts de un solo archivo.

Obviamente, es una buena idea presentar una solicitud de mejora en http://bugreport.apple.com/ , pero mientras tanto, tendrá que compilar el código antes de ejecutarlo.

Además, su archivo foo.swift no puede tener ese nombre, debe cambiarle el nombre a main.swift . Si hay varios archivos que se están cumpliendo, solo main.swift puede tener código en el nivel superior.

Entonces, tienes estos dos archivos:

cambio principal

bar()

bar.swift:

func bar() { println("bar") }

Y compilar / ejecutar el código con:

$ swiftc main.swift bar.swift -o foobar $ ./foobar bar

Si todos sus archivos swift están en el mismo directorio, podría acortar el comando de compilación:

$ swiftc *.swift -o foobar

O si quieres buscar directorios secundarios:

$ find . -iname ''*.swift'' | xargs swiftc -o foobar


Escribe un script de bash para concatenar los archivos. La secuencia de comandos que se muestra a continuación hace que el archivo de la biblioteca quede al frente de la secuencia de comandos antes de la ejecución:

#!/bin/bash cat $HOME/my_swift/my_library_to_add.swift $1.swift > t.swift swift t.swift

Como el archivo resultante es de un solo uso, puede colocarlo en la unidad de RAM. Aquí está la versión más avanzada que crea o reutiliza la pequeña unidad de RAM de 1 Mb, según sea necesario.

if [ ! -d /Volumes/swift_buffer ]; then diskutil erasevolume HFS+ ''swift_buffer'' `hdiutil attach -nomount ram://2048` fi cat $HOME/my_swift/my_library_to_add.swift $1.swift > /Volumes/swift_buffer/t.swift swift /Volumes/swift_buffer/t.swift

Esto crea una unidad de memoria RAM pequeña con la capacidad de 1 Mb solamente, lo suficientemente grande para cualquier script de utilidad y una biblioteca simple.

La unidad RAM montada estará visible en el Finder, desde donde se puede expulsar. No lo dispongo directamente en el script ya que la asignación lleva tiempo.