普段はJavaプログラマな私が「プログラマ脳を鍛える数学パズル」の問題を解いていく中で、Golangに入門していく記事となります。
プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問
- 作者: 増井敏克
- 出版社/メーカー: 翔泳社
- 発売日: 2015/10/16
- メディア: Kindle版
- この商品を含むブログ (4件) を見る
上記の記事で、解答、解答までのプロセスなどを記述したので、本記事では個々の文法の要素をJavaと比較して理解を深めていきます。
7-0.実装後の疑問点潰し(深堀り)
以下の記事でstringとruneについて、確認。
knightso.hateblo.jp
上記の記事で、意味がよく分からなかったり、A Tour of Goを読んだ時の疑問点を潰していく
・Unicodeのコードポイント
・byteスライス
・int8、int32などの違い
・fmt.Printfのフォーマットの書式の確認(%#、%U、%x)
7-1 Unicodeのコードポイント
→以下の記事で理解。
バイトオーダーの話や文字コード周りはあんまり調べすぎると戻ってこれなくなるので、ほどほどに。
equj65.net
バイトオーダ - ビッグエンディアン/リトルエディアン
以下の書籍を半分くらい読んで中身をすっかり忘れてしまっているので、再度よみ直さねばと実感。
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)
- 作者: 矢野啓介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 34人 クリック: 578回
- この商品を含むブログ (130件) を見る
7-2 byteスライス
配列とスライスの違いがわからず。
以下の記事で大まかに理解。
7-3 int8、int32などの違い
以下の記事のGoの言語仕様から確認。
golang.jp
Javaに当てはめて考えてみる。
uint8 符号なし 8-ビット 整数 (0 to 255)
uint16 符号なし 16-ビット 整数 (0 to 65535)
uint32 符号なし 32-ビット 整数 (0 to 4294967295)
uint64 符号なし 64-ビット 整数 (0 to 18446744073709551615)
→Javaではプリミティブ型の整数は符号付きだが、JDK1.8で符号なし整数として扱うメソッドがラッパークラスに追加された。
Java型メモ(Hishidama's Java type Memo)
・int8 符号あり 8-ビット 整数 (-128 to 127)
→Javaのbyte型
・int16 符号あり 16-ビット 整数 (-32768 to 32767)
→Javaのshort型
・int32 符号あり 32-ビット 整数 (-2147483648 to 2147483647)
→Javaのint型
・int64 符号あり 64-ビット 整数 (-9223372036854775808 to 9223372036854775807)
→Javaのlong型。
float32 IEEE-754 32-ビット 浮動小数値
→Javaのfloat型
float64 IEEE-754 64-ビット 浮動小数値
→Javaのdouble型
complex64 float32の実数部と虚数部を持つ複素数
complex128 float64の実数部と虚数部を持つ複素数
→Javaの標準ライブラリには存在しない。
byte uint8の別名(エイリアス)
rune int32の別名(エイリアス)
uint 32 または 64 ビット
→32bitマシンか64bitマシンかでサイズに違いが出る。
int uintと同じサイズ
uintptr ポインタの値をそのまま格納するのに充分な大きさの符号なし整数
string型の変数 != byte配列
→
文字列型は文字列の値を表現します。文字列はbyteのスライスのように振舞いますが値は不変です。つまり一度作成されたあとは文字列の内容を変更できません。文字列型として事前宣言済みの型はstringです。
文字列型の要素はbyte型データを持っているため、一般的なインデックスを使ったアクセスが可能です。ただし要素のアドレスを取得することはできません。すなわちs[i]がある文字列のi番目のバイトであるとして、&s[i]とすることはできません。文字列の長さは組み込み関数lenを使用して調べることができます。文字列sがリテラルであれば文字列長はコンパイル時に定数となります。
7-4 fmt.Printfのフォーマットの書式の確認(%#、%U、%x)
以下の記事で確認。
golang.jp
・%U ユニコードフォーマット: U+1234; "U+%x"と同じ。デフォルトは、4桁
・%# この値をGo言語の構文で表現する
・%x 基数16、10以上の数には小文字(a-f)を使用
深掘りもほどほどにして、2問目も頑張ります。
- 作者: 古川昇
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2015/07/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
- 作者: Mat Ryer,鵜飼文敏,牧野聡
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/01/22
- メディア: 大型本
- この商品を含むブログ (2件) を見る
- 作者: 松尾愛賀
- 出版社/メーカー: 翔泳社
- 発売日: 2016/04/15
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る