3 回答

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
第二個(gè)更為慣用,因?yàn)樗鼭M足Stringer接口。
func?(day?Day)?String()?string??{ ????...? }
Day
我們?cè)诜穷愋偷念愋蜕下暶鞔朔椒ǎ?code>*Day因?yàn)槲覀儧]有更改值。
它將使您能夠?qū)懽鳌?/p>
fmt.Println(day)
并獲取方法產(chǎn)生的值String
。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
您自己回答這個(gè)問題的簡(jiǎn)單方法是查看 Go 標(biāo)準(zhǔn)庫。
包車時(shí)間
import?"time"類型工作日
工作日指定一周中的某一天(星期日 = 0,...)。
type?Weekday?intconst?( ????????Sunday?Weekday?=?iota ????????Monday ????????Tuesday ????????Wednesday ????????Thursday ????????Friday ????????Saturday )func(工作日)字符串
func?(d?Weekday)?String()?stringString 返回當(dāng)天的英文名稱("Sunday", "Monday", ...)。
src/time/time.go
:
// A Weekday specifies a day of the week (Sunday = 0, ...).
type Weekday int
const (
? ? Sunday Weekday = iota
? ? Monday
? ? Tuesday
? ? Wednesday
? ? Thursday
? ? Friday
? ? Saturday
)
var days = [...]string{
? ? "Sunday",
? ? "Monday",
? ? "Tuesday",
? ? "Wednesday",
? ? "Thursday",
? ? "Friday",
? ? "Saturday",
}
// String returns the English name of the day ("Sunday", "Monday", ...).
func (d Weekday) String() string {
? ? if Sunday <= d && d <= Saturday {
? ? ? ? return days[d]
? ? }
? ? buf := make([]byte, 20)
? ? n := fmtInt(buf, uint64(d))
? ? return "%!Weekday(" + string(buf[n:]) + ")"
}
包 fmt
import?"fmt"
縱梁型
Stringer 由具有 String 方法的任何值實(shí)現(xiàn),該方法定義該值的“本機(jī)”格式。String 方法用于打印作為操作數(shù)傳遞給任何接受字符串的格式或未格式化打印機(jī)(如 Print)的值。
type?Stringer?interface?{ ????????String()?string ????????}

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
也許我的回答可能會(huì)影響性能,但在處理大量枚舉時(shí),擁有映射將是一個(gè)糟糕的想法類型類別字符串
type Category string
const (
AllStocks Category = "all"
WatchList Category = "watch_list"
TopGainer Category = "top_gainer_stock"
TopLoser Category = "top_loser_stock"
FiftyTwoWeekHigh Category = "high_stocks"
FiftyTwoWeekLow Category = "low_stocks"
HotStocks Category = "hot_stock"
MostTraded Category = "most_active_stock"
)
func (c Category) toString() string {
return fmt.Sprintf("%s", c)
}
這是枚舉的最簡(jiǎn)單的字符串格式化路徑。
- 3 回答
- 0 關(guān)注
- 176 瀏覽
添加回答
舉報(bào)