「Go/変数」の版間の差分

削除された内容 追加された内容
型変換について Go 2020年6月16日 (火) 00:46‎ から、とりあえずこちらに移動。
→‎型変換: Sprintf
308 行
var hensu3 float64 = hensu2 ;
と書いてもエラーになり、この書き方では変換できないです。
 
 
 
=== 数と文字列との変換 ===
C言語では、非標準ライブラリなどの提供する機能によって、 itoa という組み込み関数で、数を文字列にできます。
 
また、atoi という関数で、C言語では文字列を数に変換できます。
 
 
Go言語にも、これと似た組み込み関数があり、 strconv.Itoa() および strconvatoi() という組み込み関数があります。
 
Go言語では、これらの組み込み関数を使うために "strconv" モジュールをインポートする必要があります。
 
 
なお、itoa やatoi のaはアスキー(ascii)の「a」だと言われています。itoaやatoiの「i」は integer(整数)の意味だと言われています。
 
 
;コード例
<syntaxhighlight lang="go">
// 文字列型への変換
 
package main
 
import (
"fmt"
"strconv"
)
 
func main() {
moji1 := "あああ"
n := 14
moji2 := strconv.Itoa(n)
str := moji1 + moji2
fmt.Println(str)
}
</syntaxhighlight>
 
;実行結果
<pre>
あああ14
</pre>
 
 
 
=== Sprintfによる方法 ===
itoa とは別の方法で、sprintf という組み込み関数をつかう方法もある。
 
C言語の規格では、itoaをサポートしていないが、sprintfは規格によって公式にサポートされている。
 
もしGo言語で sprintf を使う場合、fmt.Println などで使う "fmt"モジュールに fmt.Sprintf も含まれているので、"fmt"をインポートすれば充分である。
 
<syntaxhighlight lang="go">
// Sprintf による文字列型への変換
 
package main
 
import (
"fmt"
// "strconv"
)
 
func main() {
moji1 := "山田"
var n int = 17
moji2 := fmt.Sprintf("%v", n)
fmt.Printf("名前:%s, 年齢:%s\n", moji1, moji2)
}
</syntaxhighlight>
 
 
;実行結果
<pre>
名前:山田, 年齢:17
</pre>