값을 나타내는 수치로 0에 "공짜"또는 3자리당 쉼표로 구분된 문자열
Swift로 iOS 앱을 만들고 있습니다.
Int 보유 가격을 나타내는 변수
price
無料
¥
처음에 태그를 놓고 String으로 반환이번에는 프로토콜을 중심으로
PriceFormattable
TL; DR
프로토콜 측
PriceFormattable.swiftimport Foundation
protocol PriceFormattable {
var price: Int? { get set }
func priceString() -> String?
}
extension PriceFormattable {
func priceString() -> String? {
guard let price = price else {
return nil
}
guard price != 0 else {
return "無料"
}
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
guard let formattedPriceString = numberFormatter.string(from: NSNumber(value: price)) else {
return ""
}
return "¥\(formattedPriceString)"
}
}
구조체 측면
Item.swiftimport Foundation
struct Item: PriceFormattable {
var name: String?
var price: Int?
}
하고 있는 일
프로토콜 측
PriceFormattable.swiftprotocol PriceFormattable {
var price: Int? { get set }
func priceString() -> String?
}
채택PriceFormattable
의 종류와 구조는 반드시 갖추어야 한다price
.priceString()
함수.
PriceFormattable.swiftextension PriceFormattable {
func priceString() -> String? {
guard let price = price else {
return nil
}
guard price != 0 else {
return "無料"
}
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
guard let formattedPriceString = numberFormatter.string(from: NSNumber(value: price)) else {
return ""
}
return "¥\(formattedPriceString)"
}
}
아래에 프로토콜 확장을 쓰십시오.소박하기 때문에 사랑을 끊는다
이제 price
변수를 가지고 PriceFormattable
priceString()
함수를 사용하면 된다.
설치 측면
Item.swiftstruct Item: PriceFormattable {
...
}
PriceFormattable
협의.지금
드디어 View Controller입니다.swiftvar item = Item()
item.price = 100
print(item.priceString()) // => "¥ 100"
이렇게 말할 수 있다.
Reference
이 문제에 관하여(값을 나타내는 수치로 0에 "공짜"또는 3자리당 쉼표로 구분된 문자열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/keisei_1092/items/54eda7f0367333997e57
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import Foundation
protocol PriceFormattable {
var price: Int? { get set }
func priceString() -> String?
}
extension PriceFormattable {
func priceString() -> String? {
guard let price = price else {
return nil
}
guard price != 0 else {
return "無料"
}
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
guard let formattedPriceString = numberFormatter.string(from: NSNumber(value: price)) else {
return ""
}
return "¥\(formattedPriceString)"
}
}
import Foundation
struct Item: PriceFormattable {
var name: String?
var price: Int?
}
프로토콜 측
PriceFormattable.swift
protocol PriceFormattable {
var price: Int? { get set }
func priceString() -> String?
}
채택PriceFormattable
의 종류와 구조는 반드시 갖추어야 한다price
.priceString()
함수.PriceFormattable.swift
extension PriceFormattable {
func priceString() -> String? {
guard let price = price else {
return nil
}
guard price != 0 else {
return "無料"
}
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
guard let formattedPriceString = numberFormatter.string(from: NSNumber(value: price)) else {
return ""
}
return "¥\(formattedPriceString)"
}
}
아래에 프로토콜 확장을 쓰십시오.소박하기 때문에 사랑을 끊는다이제
price
변수를 가지고 PriceFormattable
priceString()
함수를 사용하면 된다.설치 측면
Item.swift
struct Item: PriceFormattable {
...
}
PriceFormattable
협의.지금드디어 View Controller입니다.swift
var item = Item()
item.price = 100
print(item.priceString()) // => "¥ 100"
이렇게 말할 수 있다.
Reference
이 문제에 관하여(값을 나타내는 수치로 0에 "공짜"또는 3자리당 쉼표로 구분된 문자열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/keisei_1092/items/54eda7f0367333997e57텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)