🖥

Go | シングルクオートでは文字列を定義できない

2023/08/26に公開

問題

package main

import (
  "fmt"
)

func main() {
  var word string = 'ABC'
  fmt.Println(word)
}

// # command-line-arguments
// ./single_quotes.go:8: missing '
// ./single_quotes.go:8: syntax error: unexpected BC at end of statement
// ./single_quotes.go:8: newline in character literal

理由

go でのシングルクオートは、Rune という 型を扱うらしい。
何か文字を渡すと int32 で Unicode Code Point にマッピングされるようだ。

package main

import (
  "fmt"
)

func main() {
  var english_a rune = 'a'
  fmt.Println(english_a) // 97

  fmt.Println('b') // 98

  fmt.Println('あ') // 12354

  fmt.Println('い') // 12346
}

解決

文字列はダブルクオートで囲おう。

package main

import (
  "fmt"
)

func main() {
  var word string = "ABC"
  fmt.Println(word) // ABC
}

参考

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2017-03-24

Discussion