第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

鴨子在圍棋中鍵入

鴨子在圍棋中鍵入

Go
慕碼人8056858 2021-05-22 18:15:00
我想編寫一個Join帶有String()方法的任意對象的函數:package mainimport (    "fmt"    "strings")type myint intfunc (i myint) String() string {    return fmt.Sprintf("%d", i)}func main() {    parts := []myint{myint(1), myint(5), myint(6)}    fmt.Println(Join(parts, ", "))}func Join(parts []fmt.Stringer, sep string) string {    stringParts := make([]string, len(parts))    for i, part := range(parts) {        stringParts [i] = part.String()    }    return strings.Join(stringParts , sep)}http://play.golang.org/p/EhkbyibzHw[]myint無法傳遞給Join,因為它不是type fmt.Stringer,所以我必須寫:parts := []fmt.Stringer{myint(1), myint(5), myint(6)}但是,如果我需要parts另一個必須將值設置為int的操作怎么辦?我應該將其中的一部分切成myint薄片Stringer嗎?
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

問:我應該將的一部分切成myint薄片Stringer嗎?


Go中沒有強制轉換-只有轉換。但是,除非在循環(huán)中顯式進行,否則無法從具體的非接口類型片轉換為接口類型片。原因是,例如在您的情況下,[]myint后備陣列的內存布局與實際[]fmt.Stringer情況不同。

附帶說明,您不必編寫:


parts := []myint{myint(1), myint(5), myint(6)}

這應該以相同的方式工作:


parts := []myint{1, 5, 6}


查看完整回答
反對 回復 2021-05-24
  • 2 回答
  • 0 關注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號