tanish-kr's learning log

Learning output log

Go

データ型

基本型

整数

  • 符号付き整数: int int8 int16 int32 int64
  • 符号なし整数: uint uint8 uint16 uint32 uint64
  • byte: uint8に対するシノニムであり、生データであることを強調している

演算子

算術演算子

二項演算子
記号 説明
+ 加算
- 減算
* 乗算
/ 除算
% 除算の余り
& ビットごとの積(AND)
| ビットごとの和(OR)
^ ビットごとの排他和(XOR)
&^ ビットクリアー(AND NOT)
« 左シフト
» 右シフト
単行演算子
記号 説明
+ 単行正(何も影響なし)
- 単行否定
^ ビット否定
++ インクリメント(Cとは違い、変数が先x++)
デクリメント(Cとは違い、変数が先x--)

比較演算子

記号 説明
== 等しい
!= 等しくない
< より小さい
<= 以下
> より大きい
>= 以上

論理演算子

記号 説明
&& 論理積
|| 論理和
! 否定

アドレス演算子

記号 説明
& 変数のアドレスを得る
* 変数に格納されたアドレスを解決する

送受信演算子

チャネルからのデータ送受信に使用する。チャネルへの送信は二項演算子、チャネルからの受信は単行演算子 <-を使用する

説明
ch <- a 左辺のチャネルへ右辺の値を送信する
a = <-ch 右辺のチャネルから値を受信する

代入演算子

記号 説明
= 変数を代入する
:= 変数を定義し、初期化する。宣言のみになり、型宣言は省略になる

浮動小数点数

  • float32, float64

複素数

  • complex64, complex128

Boolean

  • true, false

文字列

部分文字列演算

s[i:j]

文字列リテラル

ダブルクォーテーション

エスケープシーケンス

シーケンス 説明
\a アラート
\b バックスペース
\f フォームフィールド
\n 改行
\r キャリッジリターン
\t タブ
\v 垂直タブ
' シングルクォート
" ダブルクォーテーション
\ バックスラッシュ

文字列と数値の変換

数値から文字列に変換

  • strconvパッケージを用いる
  • fmt.Sprintfを用いる
x := 123
y := fmt.Sprintf("%d", x)
fmt.Println(y, strconv.Itoa(x))

文字列から数値に変換

  • strconvパッケージのAtoiParseIntを用いる
x, err := strconv.Atoi("123")
y, err := strconv.ParseInt("123", 10, 64) // 基数は10で、64ビットまで

定数

constキーワードを使用して変数と同じように宣言。:=を使って宣言は出来ない

UpperCamelCaseを推奨している

const BlockSize = 10