ディレクトリ
1.識別子
编程语言的标识符是用来标识变量、类型、常量等语法对象的符号名称。一般分两类:语言设计者预留标识符,编程者自定义标识符
Go语言标识符规则:数字、字母、下划线组成,开头必须是字母或下划线。
注意:Go语言区分大小写。
1.1囲碁のキーワード
关键字是指语言设计者保留的有特定语法含义的标识符。在Go语言中,一种只有25个关键字,分3类:
全体的な構造のブートストラップキーワード:8
package import const var func defer go return
複雑なデータ構造を宣言するキーワード:4
struct interface map chan
キーワード制御プログラム構造:13
if else for range break continue switch select type case default fallthrough goto
定数識別子1.2(4)
true false
iota
nil
1.3ブランク識別子(1)
_ (也就是下划线)
1.4組み込みデータ型識別子
数值(16个)
整型(12个):
byte int int8 int16 int32 int64
unit unit8 uint16 uint32 uint64 uintprt
浮点型(2个) :
float32 float64
复数型(2个):
complex64 complex128
字符和字符串型(2个)
string rune
接口型(1个)
error
布尔型(1个)
bool
Goは強く型付けされた静的にコンパイル言語であり、実際にも、Goは自動的に、データの種類を推測することができ、この文の変数に後で参照するときに、変数と定数を定義するデータ型は、表示されることを指摘しました。
組み込み関数1.5(15)
make new len cap append copy delete panic recover close complex real image print println
2.言語の演算子
Go语言一共有47个操作符,分8类:
算術演算子(5):
+ - * / %
ビット演算子(6):
& | ^ &^ >> <<
クラス代入演算子(13):
:= = += -= *= /= %= &= |= ^= >>= <<=
比較演算子(6):
> >= < <= == !=
ブラケット(6):
( ) [ ] { }
論理演算子(3):
&& || !
インクリメントとデクリメント(2):
++ --
その他の演算子(6):
: , ; . ... <-
3. [言語変数
変数は:使用してメモリアドレスの名前を結合するために、変数の型の定義で指定されたメモリアドレスに格納されるデータの種類が決定され、格納されるメモリアドレスの内容が変更されてもよいです。
3.1は、2つの方法で変数を宣言します。
完全なステートメントショー:
var varName dataType [= value] 说明:var 用于声明变量;varName时变量名字;dataType是变量类型;value是变量初始值。
ショート型宣言:
varName := value 说明:声明变量同时赋初始值,没有声明变量类型,因为Go会根据初始值自动推导出数据类型。:= 这种声明只能出现在函数(方法)内。
同時に、完全な宣言宣言複数の変数を表示を使用する場合は、次のように、私たちは(あなたがグローバル変数を宣言するとき、これは通常使用)省略することができます。
var (
a int = 10
b string = "example"
c bool
拉拉 int
)
この文言は、通常、定義の外FUNCで、一般的にグローバル変数を宣言するために使用され、ファクタリングキーワードと呼ばれています。それはと同等です。
var a int = 10
var b string = "example"
var c bool
var 拉拉 int
3.2変数の宣言についてのいくつかの説明
図1は、まず、中国は、その後、あなたは二重引用符、単一引用符のエラーを使用しなければならない文字列を変数名を行うことができます。
変数がVARと宣言されたときに初期値を与えられていない場合は2、、、それは自動的にゼロタイプの値が与えられます。
int 为 0
float 为 0.0
bool 为 false
string 为空字符串""
指针为 nil
図3に示すように、多変数はまた、同時または平行または平行割り当てとして知られ、同じ行に割り当てることができます。以下のような:
a, b, c = 5, 7, "abc"
代わりに、シンプルな声明:
a, b, c := 5, 7, "abc"
次の2つの変数の値を交換したい場合は4、あなたは簡単に使用することができます。
a, b = b, a
いくつかのピット3.3変数の宣言
1は、変数は、それ以外の場合は、コンパイルに失敗し、それを使用するようにしてください、関数内で宣言しました。しかし、使用は問題ありませんしていない、グローバル変数を宣言します。コンパイルに失敗するコード原因未使用の変数を避けるために、我々は、アンダースコアが変わっ_変数マーカーを使用することはできません。
使用されていないパッケージに導入された場合には、図2に示すように、また、囲碁の言語で、コンパイルすることはできません。時々、私たちはそのような必要として、パッケージを導入する必要があるのinit()、または我々はデバッグコードのパッケージを削除することはいくつかの機能を使用する場合、あなたはその回避のコンパイルに失敗すると、パッケージの名前として_タグアンダースコアを追加することができます。
package main
import (
"fmt"
_ "time"
)
var (
a int = 10
b string = "example"
c bool
拉拉 int
)
func main() {
fmt.Println("hello word")
}
こと3.注意:ジェーン・グローバル変数と変数は、同じ名前のないよう宣言は、それは時折、隠れ変数事故変数シャドウに非常になりやすいでしょう。
3.4はnil nilの値について
ゼロ識別子のような「ゼロ値」インタフェース、関数、マップ、スライス、チャネル、エラー、ポインタまたは表すために使用されます。あなたは変数の型を指定しない場合、それは特定の種類を推測することができなかったため、コンパイラは、コードをコンパイルしません。
package main
func main() {
var x = nil // 错误
_ = x
}
ゼロのスライスの要素を追加しても問題ありませんが、同じことのパニックを行うには、マップのランタイムを生成します。
package main
func main() {
var m map[string]int
m["one"] = 1 //这里将会出错 error
}
文字列は、文字列のゼロ値が空の文字列であるので、ゼロでありません「」
これにより、開発者は多くの場合、分布の点でゼロの文字列変数を使用するために注意する場所です。
var str string = ""
以前の報告によると、実際には、書き込みと同じ効果上記:
var str string