iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
SideProject30

HOW TO GO系列 第 25

25. ebiten (7)

  • 分享至 

  • xImage
  •  

處理中文字換行

func (g *App) Update() error {
    // ...略
	if inpututil.IsKeyJustPressed(ebiten.KeyControl) {
		go func(prompt string) {
			resp, err := g.bot.Ask(prompt)
			if err != nil {
				log.Fatal(err)
			}
			c := strings.Split(resp.Content, "\n")
			for i := 0; i < len(c); i++ {
				c[i] = addNewlines(c[i])
			}
			g.content = strings.Join(c, "\n")
			g.prompt = ""
		}(g.prompt)
		g.prompt = "等待中..."
	}
	// ...略
}

// 每三十個字新增換行
func addNewlines(s string) string {
	b := strings.Builder{}
	count := 0
	for _, ss := range s {
		count++
		if count%30 == 0 {
			b.WriteString("\n")
		}
		b.WriteRune(ss)
	}
	return b.String()
}


上一篇
24. ebiten (6)
下一篇
26. ebiten (8)
系列文
HOW TO GO30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言