【オリジナル】go言語学習(三)文字列串、時間、日付タイプ

3005 ワード

目次


1.文字列解析2.時間タイプ3.日付タイプ

文字列の原理の解析


1.文字列の最下位は1つのbyte配列であるため、[]byteタイプと互いに変換することができる.文字列の中の文字は修正できないので、どうやって修正しますか.文字列串はbyteバイトからなるので、文字列串の⻓長はbyteバイトの⻓長4である.runeタイプはutf 8文字を表すために用いられ、1つのrune文字は1つ以上のbyteからなる
練習練習1:プログラムを1つ書き、英
練習2:中文を含む文字列に対して逆行するプログラムを1つ書きます.
//  : olleh
func testReverseStringV2() {
	// rune UTF8 
	var str = "hello "
	//  byte
	// var r []byte = []byte(str)
	var r []rune = []rune(str)

	for i := 0; i < len(r)/2; i++ {
		tmp := r[len(r)-i-1] - r[i]
		r[i] = tmp
	}
	str = string(r)
	fmt.Println(str)
}
練習3:プログラムを1つ書き、1つの文字列が返信文であるかどうかを判断する.
//  
func testHuiWen() {
	// rune UTF8 
	var str = "hello "
	//  byte
	// var r []byte = []byte(str)
	var r []rune = []rune(str)

	for i := 0; i < len(r)/2; i++ {
		tmp := r[len(r)-i-1] - r[i]
		r[i] = tmp
	}
	str2 := string(r)
	if str2 == str {
		fmt.Println(str, "is huiwen")
	} else {
		fmt.Println(str, "is  not huiwen")
	}
}
  

時刻と日付のタイプ


1.timeパッケージ2.time.時間3を表すために用いるTimeタイプ.現在時刻を取得、now:=time.Now()4. time.Now().Day(),time.Now().Minute(),time.Now().Month(),time.Now().Year()5. フォーマット、fmt.Printf(“%02d/%02d%02d %02d:%02d:%02d”, now.Year()…)
6.現在のタイムスタンプを取得するtime.Now().Unix().7.タイムスタンプのタイプ.8.タイマーの簡単な使用
9. time.Durationは、ナノ秒10を表すために用いる.いくつかの定数
const (  
    Nanosecond  Duration = 1  
    Microsecond          = 1000 * Nanosecond  
    Millisecond          = 1000 * Microsecond  
    Second               = 1000 * Millisecond  
    Minute               = 60 * Second  
    Hour                 = 60 * Minute 
) 
  
8.フォーマット:
now := time.Now() 
fmt.Println(now.Format(“02/1/2006 15:04”)) 
fmt.Println(now.Format(“2006/1/02 15:04”))
fmt.Println(now.Format(“2006/1/02”))
  
練習1:プログラムを1つ書き、現在の時間を取得し、2017/06/15 08:05:00形式にフォーマットする
// 1
func testFormat1() {
now := time.Now()
year := now.Year()
month := now.Month()
day := now.Day()
hour := now.Hour()
minute := now.Minute()
//
send := now.Second()
//now.Format , 2006 1 2
// timeStr := now.Format("2006/01/02 15:04:05")
timeStr := fmt.Sprintf("%02d/%02d/%02d %02d:%02d:%02d
", year, month, day, hour, minute, send)
fmt.Printf("time:%s
", timeStr)
}
  
練習2:プログラムを1つ書き、コードの実行時間を統計し、単位をマイクロ秒に正確にする.
//  
func testCost() {
	start := time.Now().UnixNano()
	for i := 0; i < 10; i++ {
		time.Sleep(time.Millisecond)
	}
	end := time.Now().UnixNano()
	cost := (end - start) / 1000
	//  
	fmt.Printf("code cost:%d us", cost)
}