我正在嘗試在Linux中將Narcissist例程從Rosetta Code轉換爲Swift腳本。Swift中的自戀式例程
目標是獲取腳本本身的內容並檢查用戶提供的信息。如果相同,則返回True或Accept。在蟒蛇,它看起來像:
import sys
with open(sys.argv[0]) as quine:
code = raw_input("Enter source code: ")
if code == quine.read():
print("Accept")
else:
print("Reject")
我已經不太遠製成:
#! /usr/bin/swift
let script = CommandLine.arguments[0]
let mytext = String.init(contentsOfFile: script)
導致錯誤:
./command.swift:4:21: error: argument labels '(contentsOfFile:)' do not match any available overloads
let mytext = String.init(contentsOfFile: script)
^ ~~~~~~~~~~~~~~~~~~~~~~~~
如何加載的內容(運行)腳本變成一個變量使用Swift?
什麼是Swift語言中的超載?
那麼你的實際問題是什麼? – Alexander
請注意,'String.init(contentsOf:)'需要一個'URL'參數,而您可能正在尋找'String.init(contentsOfFile:)',它需要一個'String'的爭論 – Alexander
問題在於,將腳本內容加載到變量中。相同的腳本正在執行。此外,如何將.arguments [0]擴展爲完整的URL? –