言語完全に解決GOをGO!GO!GO!(A)の基本的な文法(続きます)

序文

該当おそらく使用Golangプログラミングの友人は、この文書では満たされたリークの概要に属します。

 

:GOデータ型 - 土台のタイプ

0、変数のための標準フォーマットを定義します。var型の変数名を

図1に示すように、デジタルタイプ

     1)整数を入力:INT8、INT16、INT32、Int64型(符号付き)/ UINT8、uint16の、UINT32、UINT64(符号なし)を、それぞれ、8ビット、16ビット、32ビット、64ビットを占有します。

                    INT / UINT、32ビットまたは64ビット一般的に、マシンワードサイズを取る必要がありますCPUに多くのスペースを取ります

                    ルーンは、それは文字によって占められるストレージ容量を示し、

                              水の悪魔:特に数バイト?コーディング規則に従って、いくつかの文書が32ビット、およびINT32相当であると言うが、私はそれが固定されていない理解し、数バイトのルーンを使用したコード・ポイントは、数バイトが、決定されるべきです -

                    UIntPtr、どのように多くのビットを指定せずに符号なし整数型、が、一般に、C言語のライブラリ関数のような低レベルのプログラミング、およびオペレーティングシステムのために使用される、ポインタを収容することができるようにする場合、またはこのタイプの相互作用は、意志

      バイト、同等のタイプがuint8の種類

     2)ポイント値を入力:のfloat32 /のfloat64

     3)複合型:complex64 / complex128

2、ブールタイプ:BOOL

図3に示すように、文字列型:また基礎となる配列、スライス、等に依存する文字列、文字列は、基礎となる構造であるが、実際には、文字列はまた、スライスによって操作することができます                                                                  

。文字列型部分構造
 式StringHeaderの構造体 {
    データUIntPtrデータ//がポインタ型であるUTF-8でエンコードされた文字列を変更することはできませんと、彼は、また、額面として知られている文字の底配列を指し一連の文字。コーディングの知識を参照してくださいhttps://www.cnblogs.com/shuiguizi/p/11372985.html
    レンINT 実際には、値を読んだとき、私たちは組み込みのlenの機能を使用し、//文字列の長さを
}

。スライスのB列
  ST:= "こんにちは、世界"
  SL:=のS [:5]    

いくつかのポイントがあります:1)文字列のコピーがちょうど安い任意の長さの文字列をコピーするコストを作る基礎となるデータの構造または「こんにちは世界」を、コピー、プログラマは先に行くと散財することができます

                      2)再強調した文字列の値を変更することはできませんので、ヘルプスライス修正を得ることを期待していないが、誰が文字列変数は、S1 + =「あなたダMA」、あなたの叔父(ハローワールド)またはとして、変更することができ表し、決してあなたの叔父、叔母(S1)は、あなたのおばさん1ではないこと

                     比較ストリング天然配列の結果は、符号化するように、終了バイトによって比較バイトを比較することにより、比較用3)かもしれない文字列<==。

ネイティブ表現と解釈表現:加えて、知識は非常に重要な点、すなわち、2つの文字列表現が存在することです。

VaRの str1は文字列 = 「STR」//解釈表記は、我々は「文字列をラップします。「」二重引用符を使用する必要がある    
 のvar str1は文字列の逆引用符で必要= `str` //ネイティブ表現、」`「文字列ラップ、

水のモンスター:タイプを解析し、それが「インクレディブルという名前の、私たちの共通のある特殊文字がある場合に対処するための特殊文字の実際の意味に従って、など、このように」この文字列の内容を説明することです「」。

           オリジナルタイプは、しばしば `ここにコンテンツを使用すると、エスケープ文字は、すべての魂死ん文字が何であるか、のようなルックスを見たものであることを意味し、言語に行く遭遇したonly`         

 

4、日付と時刻タイプ

 

5、ポインタ型:PTR

 

2:データ型をGO - 型化合物

1、配列型/スライスタイプ:配列型ではなく特定のキーワード、及びC言語は、アレイの任意の型の基礎とすることができる配列は、いったん初期化、共有ストレージを変更しない、次のように使用されます。

                             var myArray = [3]int{1,2,3}  或 var myArray = [3]int{1,2,3}              //即是一个int类型的数组
                       切片类型和数组有着很深的渊源,可以认为是可变长的数组,实际上他的存在是依托于底层数组的,用法如下:
              var myslice1 =[]int{1,2,3}    或   var myArray = [5]int{1,2,3,4,5}    var myslice2 = myArray[1:4]    

解析:《圣经》上说:

データスライス軽量構造で、機能要素のアレイ配列(またはすべて)へのアクセスを提供し、底スライスは配列オブジェクトへの参照を行います。ポインタ、長さ:スライスは、3つの部分から構成さと容量。
ポインタの基礎となる配列要素のスライスに対応する第1のアドレス要素の点は、最初のスライスの最初の要素は、必ずしも素子アレイではないことに留意されたいです。
長さは、スライス内の要素の数に対応し、
長さが容量を超えないようにすることができ、スライスの容量は、より一般的に開放されている
基礎となるデータの開始位置まで終了位置。組み込み関数は、LENとキャップ長さとボリュームスライスを返します。

    基礎となるデータは、スライスの複数の間で共有することができ、基準範囲は、アレイの一部と重なっていてもよいです。で表現するための図を使用します。

                             

 

水の悪魔:この図ではどのような関係スライスと配列を解釈します

             まず、出願された3つ含むスライス構造は:第一は、アレイの底部からポインタを任意とすることができるので、「完全に代表的」ではない「に基づいて」このスライスに依存して、基礎となる配列、のみ注目を示すポインタであります位置はカウントし始めました

                                                                                 第二の、すなわち、「ビジョン」、またビューと呼ばれる、長さ、これは、基礎となる配列のスライス操縦可能な範囲は非常に大きいであることを示し

                                                                                 第三は、総根底にあるのアレイの容量それほど大きくあり、トップ日あなたが操作の範囲を限定し、かつ操作によってできるように、配列全体を超えていない、あなたのビジョンの長手方向の延長の容量と同じ:

                                                                      slice1 = slice1[:cap(slice1)]

                       別の例として、上記の数値は、基礎となる配列はヶ月、13個の要素の合計です。位置からQ2 4開始、現在のビューでは、あなたが9を扱うことができるよりも多くの3であり、夏は6位の開始され、現在のビューが3で、7まで対応することができます

             次いで、スライス間の比較ではない。ゼロであるゼロ値、何下地配列、長さ及び容量を示さないが、0である、例えば、[] INT {}、または([] INT、3 [3:0])を作ります

                        一般的な要件は、これが準拠コード化されることに注意してください、機能は同じ言語ゼロとスライス0の長さを扱われるべきである行きます

            最後に、基になる配列のスライス構造または配列の根底にある配列、スライスの複製もレプリケーションに影響を与えることのスライスの要素を変更

            ほとんどの最後に、根本的な配列は次のようになり?

        SliceHeader型構造体{ 
          データuintptr 
          レンINT 
          キャップINT 
             }

 

 

図2に示すように、構造

3、マップ

 

A: - 参照型のデータ型をGO

1、ポインタ:*、例えば:

2.スライス:*、例えば:

3、辞書:*、例えば:

4、機能:*、例えば:

1、チャネル:チャネル、例えば:

 

おすすめ

転載: www.cnblogs.com/shuiguizi/p/11372635.html