構造:
データ型です。
タイプ人構造体{ -通常のグローバル位置に配置された型定義(バイトブール列をint型に相当する位置....)。
文字列名の
セックスバイトの
年齢はint
}
一般的な変数の定義と初期化:
1.初期化シーケンス:順次、所望の部材の内部構造を初期化します。
VARマン人=人{ "アンディ"、 'M'、20}
2.メンバーの初期化を指定します。
男性:= {人名:「ローズ」、年齢:18} ---- 初期化されていない変数メンバー、データ・タイプに対応するデフォルト値を取る
割当及び単純な変数の使用:
使用してください。「」インデックスのメンバ変数を。
VaRのMAN3者
man3.name = "マイク"
man3.sex = 'M'
man3.age = 99
構造体変数の比較:
1.比較:あなたは==を使用して=> <> = <= ...することはできません!
2.同じ構造型(型部材可変数一貫したシーケンス)は、変数代入の間に直接であってもよいです。
構造住所:
構造可変アドレス==構造の最初の要素のアドレス。
パラメータの受け渡し構造:
unSafe.Sizeof(変数名) - >によって占有されたメモリ空間の可変サイズのこのタイプの
構造変数のコピー、転送の値。-ほとんどありません。メモリ消費量と効率が低いです。
定義ポインタ変数を初期化する:
1.初期化シーケンスを順次、所望の部材の内部構造を初期化します。
VARマン*人物=&人物{ "アンディ"、 'M'、20}
2.新しい(人)
P:=新しい(人)
p.name = "名前"
p.age = 10
インデックスポインタは、メンバ変数次のようになります。
使用してください。「」インデックスのメンバ変数を。
人物のvar MAN3
man3.name = "マイク"
man3.sexを= 'M'
man3.age = 99
構造住所:
第1の素子構造体のポインタ変数値のアドレス==構造。
構造体ポインタパラメータ送信:
unSafe.Sizeof(ポインタ):かかわらず、ポインタの種類の、64ビットオペレーティングシステム、同じサイズです。8バイトです!!!
構造変数のアドレス値、パス(参照渡し)。-使用頻度が非常に高いです!!!
演習:
構造体の定義は、文字列のメンバーを含む、int型、ブール、[]の文字列。
構造「共通変数」主な機能の定義は、初期化されていません。初期化関数、メイン関数印刷ビューでラッパー関数INITFUNC、。
関数の構造体へのポインタ戻り値:
私たちは、アドレスのローカル変数を返すことができません。 - ローカル変数は、関数呼び出しスタックフレームのリリース後にスタックフレームに格納されています。住所ないローカル変数は、もはや他のプログラムに割り当ててもよい任意の時点で、システムにより保護されています。
あなたは、ローカル変数の値を返すことができます。
文字列処理関数:
1.指定された文字列の区切りスプリット:スプリット
RET:= strings.Split(STR、 "I")
2.を押して文字列を分割するためにスペースバー:フィールド
RET = strings.Fields(STR)
3.エンドの分析文字列タグHasSuffix
FLG:= strings.HasSuffix( "test.abc"、」.MP3" )
4.分析列スタートマークHasPrefix
FLG:= strings.HasPrefix( "test.abc"、 "TES。")
開き、ファイルを作成します。
1.作成したファイルを作成します。ファイルを作成存在しない、ファイルが存在する場合、ファイルの中身を空にします。
パラメータ:name、ファイルオープンパス:絶対パス、相対パスの区切り文字のディレクトリ:/
2.ファイルを開く:オープン読み取り専用ファイル。ファイルが存在しない、オープンに失敗しました。
パラメータ:name、ファイルパスを開く:絶対パスを、相対パス
、書き込み専用、読み取り専用のファイルを開くには、読み書きモード:3.ファイルのOpenFileを開きます。ファイルが存在しない、オープンに失敗しました。
参考1:名前、ファイルパス開く:絶対パス、相対パスを
参考2:ファイルのアクセス権を開きます。O_RDONLY、O_WRONLY、O_RDWR
参考3:一般的なパス6
ファイルを書き込みます。
押して文字列の書き込み:WriteStringメソッド)( - > n文字の数を書きます
N、ERR = f.WriteString( "123")
復帰改行:窓:\ rを\ n個のLinux :\ nの
場所の書き込みによって:
シーク():ファイルを変更するには、ポインタの位置を記述します。
参考1:オフセット。正:負、ファイルの末尾部分:スキューヘッダーへ
参考2:開始位置オフセット
io.SeekStart:ファイルの先頭に
io.SeekCurrent:現在のファイルの場所
io.SeekEnd:ファイルの場所の終わり
戻り値:ポインタは、ファイルの先頭から現在のファイルオフセットを読み書きする位置を示します。
オフ、_:= f.Seek(-5 、io.SeekEnd)
バイトライト:
writeAt():ファイル内のオフセット位置の開発は、通常(シークと[]バイトを書き込み)
参考1:データが書き込まれる
参考2:オフセット
戻り値:バイト数が実際に書き込まれました。
N、_ = f.WriteAt([]バイト( "1111")、オフ)
:ファイル読み取り
読み取り行
1)バッファとリーダ(リーダを作成します)。
リーダー:= bufio.NewReader(オープン・ファイル・ポインタ)
2)バッファ、長さを指定したリードデータリーダから。パラメータは、データ長dlimeに依存します
BUF、ERR =のreader.ReadBytes( '\ nは')行によって読み取ります。
裁判官は、ファイルの終わり:! ERR = nilの&& ERR == io.EOF場合は、ファイルの末尾に達しました。
取得後は一人で読み込むファイルマーカーの終わり。
バッファ:物理ディスク・アクセス操作を軽減するために使用されるメモリの領域です。「コンピューティングハードウェアおよび組成主義」 -機械工業プレス。
バイトファイルを読み書き。
読んで([]バイト):バイト単位のファイルを読み込みます
書き込み([]バイト):バイトバイト
ディレクトリの操作:
オープンディレクトリ:のOpenFile
オープンディレクトリのOpenFile:オープン読み取り専用のディレクトリ。
参考1:名前、ディレクトリ・パスを開きます。絶対パスを、相対パス
参考2:ディレクトリのパーミッションを開きます。O_RDONLY
参3:os.ModeDir
戻り値:ファイルへのポインタがディレクトリを読み取ることができ返します。
ディレクトリを読むREADDIR
プロトタイプ:FUNC(N INT)([ ]のFileInfo、エラー){(F *ファイル)のREADDIR
パラメータ:ディレクトリエントリの数が開かれます。-1テーブルすべて
返回值:のFileInfo:
タイプのFileInfoインタフェース{
ファイルの名前()文字列//ベース名
、通常のファイルのバイトでのサイズ()のint64 //長さ。システムに依存する他のための
モード()にFileMode //ファイルモードビット
MODTIME()time.Time //変更時刻
モードのIsDir()BOOL //略称()。IsDir()
SYS()インターフェース{} //基礎となるデータ・ソース(nilを返すことができます)
}
3つの演習、アイデアの分析:
1.ユーザーが指定したディレクトリに応じて、読み取り専用オープン - 読み取りがディレクトリを行使する。
2.ディレクトリ.txtが見つけて、複数があるかもしれません - 特定のファイルタイプを見つけるためのディレクトリ
3. .txtファイルを開き1。ループは1行を読み取ります。リーダー:= bufio.NewReader、reader.ReadBytes( '\ n')で - ファイルの行演習の内容を読みます
4.文字列ラインデータ、分割後、格納[]の文字列。スプリット、フィールズ - 文字列の演習
5.トラバース[]文字列の統計情報「愛」という言葉が表示された回数。 - 地図演習
C:/ itcast /テスト