Go 言語では、変数はプログラムの実行中に変更 (変更) できる内容の量であり、変数はプログラムの基本単位であり、メモリ内のデータ格納スペースを表します。変数名で見つけることができます。変数の機能はユーザーデータを保存することであり、計算結果を保存したり、値を表現したりできるコンピューター言語の抽象的な概念です。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
1. 概要
変数 (Variable) は、プログラムの実行中にコンテンツが変更 (修正) できる量です。基本単位はメモリ内のデータ記憶領域を表現したもので、変数値は変数名でわかります。
変数の機能はユーザー データを保存することであり、計算結果を保存したり、値を表現したりできるコンピューター言語の抽象的な概念です。
変数は、変数の識別子を通じて値を検索するプロセスです。変数のメモリ シミュレーションのデモンストレーション:
2. 定義: 宣言と初期化
var を使用して定義します。変数キーワード。その型を指定する必要があり、同時に初期化できます。初期化値が指定されていない場合は、型のデフォルト値が使用されます。構文は次のとおりです:
// 声明变量,未初始化(默认值初始化)
var name string
// 声明变量,特定值初始化
var user string = "Hank"
Go 言語の変数は宣言する必要がありますが、使用できますが、未定義の変数を直接使用することはできません。
3. 型のデフォルト値 (ゼロ値)
Go 言語の型のデフォルト値は次のとおりです: Integer と floatポイント変数のデフォルト値は 0 です。 文字列変数のデフォルト値は空の文字列です。 ブール変数のデフォルトは bool です。 スライス、関数、およびポインター変数のデフォルトは nil です。
4. 強い型付け
Go 言語は強く型付けされた言語であり、変数には型が必要であり、変数は特定の型のデータのみを格納できます。 。 [関連する推奨事項: Go ビデオ チュートリアル ]
5. 型導出
変数を定義するとき、初期値がvalue を使用する場合は、型の定義を省略でき、Go 言語はデータ自体から型を推定できます。構文は次のとおりです:
// 声明变量,特定值初始化,类型推导出user为字符串string型
var user = "Hank"
6. 短い宣言 (定義)
変数の定義を簡素化するには、演算子を使用します。 = 型導出を使用すると、変数の定義をすばやく完了できます。構文は次のとおりです:
user := "hank"
7. バッチ定義
var または := を使用して複数の変数を一度に定義できます。構文は次のとおりです:
var
var (
v1 = 42
v2 = "hank"
)
也可以
var v1, v2 = 42, "hank"
:=
v1, v2 := 42, "hank"
コードのメンテナンスが簡単なため、var() 宣言ブロック構文を使用することをお勧めします。
8. バッチ割り当て
複数の変数を一度に割り当てます。 (短い定義に似ています。v1, v2, v3 := 42, "hank", false) 変数を定義した後、それらにバッチで値を代入します。定義関数はありません。構文は:
var (
v1 int
v2 int
)
// 批量赋值
v1, v2 = 42, 1024
この構文は通常、一度に複数の戻り値を受け取るために関数のバッチリターンで使用されます。構文は:
func main() {
var (
v1 int
v2 int
)
// 调用函数,接收其返回值
v1, v2 = getData()
}
// 返回两个值的函数
func getData() (int, int) {
// 返回了两个值(假设42为最小值,1024为最大值)
return 42, 1024
}
2 つの変数の値を交換すると非常に便利です:
var (
v1 = 42
v2 = 1024
)
// 交换
v1, v2 = v2, v1
9. 匿名変数
識別子 _ (アンダースコア) を持つ変数は、システムによって予約された匿名変数であり、代入後はすぐに解放され、匿名変数と呼ばれます。その関数は変数のプレースホルダーであり、変数に値の構造を割り当てます。通常、バッチ割り当て中に使用されます。たとえば、関数が複数の値を返し、その一部のみが必要な場合、必要がなければ _ を使用してスペースを占有します。 #10. 変数のスコープ Go 言語の変数はブロックスコープです。ブロックは、関数、if/switch/for ステートメント、または独立した {} を含む、{} を使用して定義されたコード セグメントを指します。これらはすべてブロックです。ブロック内で定義された変数は、このブロック内でのみ使用できます。定義は、var または := で定義された変数を参照します。 Go 言語のスコープはカスケードです。つまり、内側のブロックが同じ名前の外側の変数を定義していない限り、内側のブロックは外側のブロックの変数に直接アクセスできます。デモンストレーションは次のとおりです:上面代码中: 在main()中,v2,v3被重新定义,则在main()中,v1是外部,而v2, v3是main函数局部的。 在main()内部的{}中,v3被重新定义,则在main()内部的{}中,v1是外部,而v2是main()定义的, v3是main()内部{}定义的的。 变量可以沿内部作用域向外部作用域查找变量的过程。 带有{}的语句,其中的变量也仅仅在内部有效,例如for,if,switch等,演示: 注意i,是通过短声明在for内部定义的变量,仅仅在for内部有意义。 互不嵌套的{}见作用域不可见,不可互相访问。 更多编程相关知识,请访问:编程教学!!func main() {
var (
v int
)
// 调用函数,仅仅需要第二个返回值,第一,三使用匿名变量占位
_, v, _ = getData()
}
// 返回两个值的函数
func getData() (int, int, int) {
// 返回3个值
return 42, 1024, 2012
}
for i := 0; i < 10; i++ {
fmt.Println(i)
}
fmt.Println(i)
// 会提示变量i未定义, undefined: i
func main() {
{
v := 42
}
{
fmt.Println(v)
// 会提示变量v未定义, undefined: v
}
}
以上がGo言語の変数とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

goisastrongchoiceforprojectsingingingimplicity、andconcurrency、butmaylackinadvencedecosystemmaturity.1)

go'sinit functionandjava'sstaticInitializerserserservetosetupenmentseforeThemainfunction、buttheydifferinexecution andcontrol.go'sinitissimpleandpleandpleandautomatic、suftable forbasicasiccicsiccicsiccicsicciscicsupsupsbutsbutcanleadeadcoMplecticaticifoverseforedifuredifuredifuredifuredifuredifuredifuredifuredifuredifuredifured

fortheInit functioningoareの場合:1)configurationfilesbemainprogramstarts、2)初期化Globalvariables、および3)running-checksSorvalidationseforetheprogramprocutess.theinitistomationaledemainforeThemainfunction、Makin

cannelsElcialing of renablingsefientive communication betweengoroutines

GOでは、エラーをラップし、エラーを介してコンテキストを追加できます。 1)エラーパッケージの新機能を使用して、エラーの伝播中にコンテキスト情報を追加できます。 2)fmt.errorfおよび%wを介してエラーをラッピングして問題を見つけるのを手伝ってください。 3)カスタムエラータイプは、より多くのセマンティックエラーを作成し、エラー処理の表現力を高めることができます。

goooffersbustfeaturesforsecurecoding、butdevelopersmustimplementsecuritybestpracticive.1)usego'scryptageforsecuredathing.2)surncurrencywithranciationwithranizationprimitivestopreventraceconditions.3)sanitexe zeexerinputeterinpuptoravoidsqlinj

Goのエラーインターフェイスは、TypeErrorInterface {error()String}として定義され、エラー()メソッドを実装する任意のタイプをエラーと見なすことができます。使用の手順は次のとおりです。1。iferr!= nil {log.printf( "anerroroccurred:%v"、err)return}などのエラーを基本的にチェックおよびログエラー。 2。TypeMyErrorStruct {MSGSTRINGDETAILSTRING}などのより多くの情報を提供するカスタムエラータイプを作成します。 3.エラーラッパー(GO1.13以降)を使用して、元のエラーメッセージを失うことなくコンテキストを追加する、

Effectivitive Handleerrorsinconconconcurentgoprograms、usechannelstocommunicateerrors、Implienterrorwatchers、Sunidertimeouts、usebufferedchannels、およびprovideclearerrormess.1)usechannelstopasserrors fromgoroutineStothemainctunction.2)Anerrorwatcherを実装します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1
使いやすく無料のコードエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









