カウントアップ、カウントダウンできるStepperを実装します
@State var kosu:Int = 0
var body: some View {
Stepper(value: $kosu, in: 0...10, step: 2){
Text("個数: \(kosu)")
}
.frame(width: 200)
}
単価と個数から料金を計算して表示する
@State var kosu:Int = 0
let tanka = 240
let tax = 0.1
var body: some View {
VStack(alignment: .leading, spacing: 20) {
Text("1個 \(tanka)円")
Stepper(value: $kosu, in: 0...10, step: 2){
Text("個数: \(kosu)")
}.frame(width: 200)
let price = tanka * kosu
let result = Int(Double(price) * (1 + tax))
Text("料金:\(result) 円").font(.headline) + Text("(税込)").font(.footnote)
}
}
料金計算を別の関数として計算する
var body: some View {
VStack(alignment: .leading, spacing: 20) {
Text("1個 \(tanka)円")
Stepper(value: $kosu, in: 0...10, step: 2){
Text("個数: \(kosu)")
}.frame(width: 200)
Text("料金:\(calc(kosu)) 円").font(.headline) + Text("(税込)").font(.footnote)
}
}
func calc(_ num:Int) -> Int {
var price = tanka + num
price = Int(Double(price) * (1 + tax))
return price
}
Computedプロパティで計算して料金表示
var price:Int {
var value = tanka * kosu
value = Int(Double(value) * (1 + tax))
return value
}
var body: some View {
VStack(alignment: .leading, spacing: 20) {
Text("1個 \(tanka)円")
Stepper(value: $kosu, in: 0...10, step: 2){
Text("個数: \(kosu)")
}.frame(width: 200)
Text("料金:\(price) 円").font(.headline) + Text("(税込)").font(.footnote)
}
}
### 外部引数名がない関数
func hoge(_ num:Int) として、hoge(2) などで呼び出して実行できる
let tanka = 240
func calcA(num:Int) -> Int {
let price = tanka * num
return price
}
func calcB(kosu num:Int) -> Int {
let price = tanka * num
return price
}
func calcC(_ num:Int) -> Int {
let price = tanka * num
return price
}
let priceA = calcA(num: 2)
let priceB = calcB(kosu: 2)
let priceC = calcC(2)
なるほど、いわゆるライブラリみたいなのがswiftにdefaultで実装されていて、それを使うことで色々な表現ができるのね。