【オリジナル】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)
}