請不要標記爲重複,直到你讀完整件事情。這是特定於斯威夫特3.如何將readLine()的Swift 3輸出轉換爲Integer?
我有參數,如Ints,浮動等功能。我想採取readLine()的輸出,並讓Swift接受readLine()的輸出作爲這些類型,但不幸的是readLine()輸出一個字符串?當我試圖轉換它告訴我它不是unwrapped。我需要幫助。我使用的是Ubuntu 16.04。
例如,如果我有area(width: 15, height: 15)
,我將如何用兩個包含readLine()或等同於readLine()的常量替換15和15以接受來自終端中用戶的輸入?
另外請注意,我寫的程序專門做數學,因爲大多數人似乎對字符串感到滿意,這實際上是一個基於CLI的計算器。
編輯1(lol)好的,這裏有一個更精確的解釋。下面的代碼將打印梯形的面積:
import Foundation
func areaTrapezoid(height: Float, baseOne: Float, baseTwo: Float) {
let inside = baseOne + baseTwo
let outside = 0.5 * height
let result = outside * inside
print("Area of Trapezoid is \(result)")
}
areaTrapezoid(height: 10, baseOne: 2, baseTwo: 3)
因此,梯形具有10個單元,並且分別具有2和3長度的兩個鹼基的高度。然而,我想要做的事,如:
import Foundation
func areaTrapezoid(height: Float, baseOne: Float, baseTwo: Float) {
let inside = baseOne + baseTwo
let outside = 0.5 * height
let result = outside * inside
print("Area of Trapezoid is \(result)")
}
let h = readLine()
areaTrapezoid(height: h, baseOne: 2, baseTwo: 3)
除此之外,作爲已經是顯而易見的,的readLine()將輸出一個可選的字符串,而不是浮動。我希望用戶能夠以交互方式通過CLI輸入數字,如果您願意的話。我剛剛學習Swift,但是當我學習那種語言時,我在C++中做了類似的事情。感謝您的任何幫助,您可以提供。
我不知道我其實可以發表評論!好吧,看看更新。這是否適用於那裏? –
是的,都一樣。你可以在我的例子中使用'Float()'或'Double()'和我使用'Int()'相同的方法來從字符串輸入轉換。 – Moritz
試過,真的,兄弟。謝謝,我不認爲會有一個簡單的方法! –