Golang学習ノート

1752 ワード

-----1----- package main
import (     "fmt"    "go_dev/day1/goroute_example/goroute")
//goのgorouteで異なるファイルの同時操作を実現//channelパイプ(chan)スレッドデータでfunc main(){//パイプpipe var pipe chan int pipe=make(chan int,3)go goroute.Add(100,200,pipe)//パイプの値をsum上のsum:=fmt.Println("sum==",sum)に言及
}
-----2----- package calc
//go書き出しの区別方法は、アルファベット大文字func Add(a int,b int)int{return a+b}
----3----- package add
var Name string = "hhh"var Age int = 10
func init()  {     Name = "???"Age=88}//initは、各独立したパケットがmainに出力されて最後に実行される関数//a「go_dev/day 2/example 2/add」=>パケットの名前を変更します.
------4------パケットは初期化され、参照されません.
import (_ "add")
----5-----
constは永遠に読み取り専用で、変更できません.
const(     a = 0     b = 1     c = 2 )
よりプロフェッショナルなconst(a=iota(以下のb cは1から増加)b//1 c//2)
----6-----
値タイプと参照タイプ
1.値タイプ:変数は直接値を格納し、メモリは通常スタックに割り当てられる(新しい部分を作成する)---基本データ型int、float、bool、string、配列、struct 2.参照タイプ:変数は、ポインタ、slice、map、chanなど、アドレスによって対応する値を見つけるアドレスを格納します.
----7-----
package main
import"fmt"//*操作アドレス対応メモリの値func swap(a*int,b*int){tmp:=*a*a=*b*b=tmp return}
func main(){first:=100 second:=200//&着信アドレスswap(&first,&second)fmt.Println('1',&first)fmt.Println('2',&second)fmt.Println('1',first)fmt.Println('2',second)}
 
ポインタについて
package main

import "fmt"

func main()  {
   var a int = 10
   fmt.Println("ssss",&a)
   //    !  
   var p *int
   p = &a
   fmt.Println("aaaa",p)
   // * 
   *p = 100
   fmt.Println("ssss",a)
}