Goベースhello world

7368 ワード

Hello World

package main

import "fmt"

func main() {
	fmt.Println("Hello World")
}

1) package main


パッケージ→機能スイート
メインパッケージの宣言を書き込む
プログラム(開始点を含む)はmainで始まる

2) import "fmt"


mainパッケージのfmt機能を使用します.
  • fmt(format):go言語協会が作成した標準パッケージ
  • 3) func main()


  • func(function):関数は、入力が入力されたときに任意の演算を行い、出力します.
    プログラミング言語では、入力がなくても呼び出しで実行する機能があります

  • main():関数名(入力)mainは関数の起点であり、他の関数では使用できません.
  • 4) {fmt.Println("Hello World")}


  • {}:プログラムの開始と終了

  • fmt.println:fmtパッケージ"."=printlnという名前の機能を使用します.

  • (「Hello World」):()=「入力値」
  • へんすう


    変数値を変更できる数値.

    1)変数の属性

  • タイプ:整数(integer)、実数(float)、文字列(string)
  • メモリアドレス
  • 2)変数の宣言方法

    var a int
    a = 3
    var(変数)a(名前)int(タイプ)
    a=3(値)
    aという変数タイプは整数(int)で、その値は3に代入されます.
    
    var a int
    a =5 // 데이터 타입과 대입을 따로 따로
    
    var b int = 8 // 데이터 타입과 대입을 한번에
    
    var c = 6
    var d = 3.14 // 데이터 타입을 자동으로 설정해서 대입 한다.
    
    e := 4 
    f := 2 //var는 쓰지않고 데이터 타입을 자동으로 설정해서 대입 한다.
    

    3)変数の原理


    変数を宣言すると、特定のメモリアドレスが表示されます.aという変数が宣言された場合、aはメモリに格納され、そのメモリアドレスを使用して値が取得されます.
    ここから取得したメモリアドレスは、開始点として使用され、aが呼び出されたときにどこまで読むかが決定される.つまりサイズを教えます.
    ここでそのサイズを教えてあげるのがデータ型を特定することです.

    4)データ型とサイズ


    適切なデータ型を使用して、コンピュータのメモリを節約します.
  • int
    整数の略は、32ビットコンピュータで4バイト、64ビットコンピュータで8バイトの整数を表す.
  • データ型バイト値の範囲:int 81 byte-128~127 uint 81 byte 0~255 int 162 byte-32767 uint 162 byte 0~65535 int 324 byte–21474883648~21474883647 uint 324 byte 0~4294967295 int 648 byte-92233720366854775808~92233720366854775807 uint 648 byte 0~18474747070615
  • float
    実数型を表し、数字部分と小数点部分に分けられます.
  • データ型バイト値の範囲float 324 byte 7ビットfloat 648 byte 15ビット
  • string
    文字列のデータ型を表します.
    サイズが変わりました.
  • bool
    Booleanデータ型の変数は一般的な数字ではなく、真偽を表すデータ型です.
    true/false
  • 演算子


    演算子:+、-、*、/
    ビット演算子:&、|、^
    論理演算子:>、<、=、!=
    package main
    
    import "fmt"
    
    func main() {
    	a := 4
    	b := 2
    
    	fmt.Printf("a&b = %v\n", a&b)
    	fmt.Printf("a|b = %v\n", a|b)
    	fmt.Println("a^b =", a^b)
    }
    fmt.Printf("a&b = %v\n",a)
    「a&b=%vn」の後の値(a&b)をフォーマット(%v)で挿入します.
    %v:後の値のデータ型を設定して読み込みます.
    fmt.Println("a^b =", a^b)
    出力毎に「a^b=」とa^b
    n:実行
    a&b:AND演算
    a|b:OR演算
    a^b:XOR演算
    *a^:単項演算子としてNOT
    package main
    
    import "fmt"
    
    func main(){
    	a := 21
    	c := a % 10
    	a = a / 10
    	d := a % 10
    
    	fmt.Printf("첫번째 수 : %v\n두번째 수 : %v\n", c, d)
    }
    ---------------------------
    첫번째 수 : 1
    두번째 수 : 2
    
    %:その他の演算子
    c := a % 10
    21を10で割った残りのc:=1
    a = a/10
    21を10で割ると整数型なので小数点は消えてしまいますa=2
    d := a % 10
    2を10で割って、商は2です.d := 2
    package main
    
    import "fmt"
    
    func main(){
    	a := 4
    
    	fmt.Println(a &^ a)
    	fmt.Println(a << 1)
    	fmt.Println(a >> 1)
    }
    ---------------------------
    0
    8
    2
    
    *&^:clear演算子
    a&^a
    a = 4 -> 0100
    a = ^4 -> 1011
    0100 & 1011 = 0000
    シフト演算子
    >> , <<
    矢印方向1ビットプッシュ原理
    a =4 -> 0100
    a<<1 -> 1000
    a>>1 -> 0010

    条件演算子


    真偽を区別する演算子.
    package main
    
    import "fmt"
    
    func main(){
    var a bool
    	a = 3 > 4
    
    	fmt.Println(a)
     }   
    ----------------------- 
    false
    
    3が4未満のため、出力値はfalse
    package main
    
    import "fmt"
    
    func main(){
    var a bool
    	a = 3 < 4 && 2 < 5
    
    	fmt.Println(a)
     }
    -----------------------
    true
    &&両方が満たされるとtrueが現れます.

    演算子を参照


    リンクテキスト

    条件文


    ex1)
    package main
    
    import "fmt"
    
    func main(){
    if 3 > 4 {
    		fmt.Println("참")
    	}
    	fmt.Println("거짓")
     }
    -----------------------------
    거짓
    
    if文は、与えられた条件が真である場合にその値を出力するので、上記の条件3>4は偽であるため、if文のfmtである.Println(「対」)は出力されません.
    ex2)
    package main
    
    import "fmt"
    
    func main(){
    a := 3
    	if a == 3 {
    		fmt.Println("a 는 3")
    	}
    	fmt.Println("a 의 값은 ", a)
      }
     -----------------------------   
    a 는 3
    a 의 값은  3
    
    a:=3で変数を宣言する場合
    a=3が真の場合、if文のコードと外部のコードが出力されることがわかります.

    じょうけんステートメント

    package main
    
    import "fmt"
    
    func main(){
    a := 4
    	if a == 3 {
    		fmt.Println("a 는 3이다.")
    	} else {
    		fmt.Println("a는 3이 아니다.")
    	}
     }   
        
    与えられた条件が真の場合、出力は
    そうでない場合、elseはelseを出力します.
    ifの角カッコの末尾にぴったりです.

    じょうけんステートメント

    package main
    
    import "fmt"
    
    func main(){
    	a := 4
    	if a == 3 {
    		fmt.Println("a 는 3이다.")
    	} else if a == 4 {
    		fmt.Println("a는 4이다.")
    	} else {
    		fmt.Println("a는 3도 아니고 4도 아니다.")
    	}
      }
    -----------------------------
    a는 4이다.  
    else ifは、複数の条件を設定するために使用されます.

    体験する

    package main
    
    import (
    	"bufio"
    	"fmt"
    	"os"
    	"strconv"
    	"strings"
    )
    
    func main() {
    
    	fmt.Println("숫자를 입력하세요")
    	reader := bufio.NewReader(os.Stdin)
    	line, _ := reader.ReadString('\n')
    	line = strings.TrimSpace(line)
    
    	n1, _ := strconv.Atoi(line)
    
    	line, _ = reader.ReadString('\n')
    	line = strings.TrimSpace(line)
    
    	n2, _ := strconv.Atoi(line)
    
    	fmt.Printf("입력하신 숫자는 %d, %d 입니다.\n", n1, n2)
    
    	fmt.Println("연산자를 입력하세요")
    
    	line, _ = reader.ReadString('\n')
    	line = strings.TrimSpace(line)
    
    	if line == "+" {
    		fmt.Printf("%d + %d = %d", n1, n2, n1+n2)
    	} else if line == "-" {
    		fmt.Printf("%d - %d = %d", n1, n2, n1-n2)
    	} else if line == "*" {
    		fmt.Printf("%d * %d = %d", n1, n2, n1*n2)
    	} else if line == "/" {
    		fmt.Printf("%d / %d = %d", n1, n2, n1/n2)
    	} else {
    		fmt.Println("잘못 입력하셨습니다.")
    	}
    }
    

  • import():複数のパッケージをインポートするときにカッコを使用します.

  • 「os」:標準入力から入力を受信する場合に必要

  • 「bufio」:入力から1行受信する場合に必要

  • strconv:文字列を数値に変換する機能

  • 「strings」:string入力を受信したときに残渣を削除する機能
  • reader := bufio.NewReader(os.Stdin)
    os.Stdin=osパッケージにStdin->標準を入力
    bufio.NewReader()=bufioパッケージにNewReader->読み取り用オブジェクトを作成します.
    line, _ := reader.ReadString('\n')
    「n」が表示されるまでreader変数で読み込みます.
    結果値はstringとerrorです.
    エラー部分を処理しない行を読み、「」無名変数として処理します.
    line = strings.TrimSpace(line)
    stringパッケージのTrimSpaceは、行変数に不要な文字列("n")を解放します.
    *("n")これは数字では置き換えられないため、エラーです.
    n1, _ := strconv.Atoi(line)
    strconvパッケージのAto->文字列を数値に変換します.
    結果値はstringとerrorなのでlineとして処理します.
    同様の方法でn 2も製造される.
    これに加えて、演算子を設定することもできますが、数値に変換する必要はありません.
    n1, _ := strconv.Atoiは使いません.
    if文で各演算子の結果を入力します.

    実行方法


    端末から対応するディレクトリに移動
    go build 파일명 
    exeファイルを作成します.
    ./파일명.exe
    通過する.