1. 程式人生 > >體驗go語言的風騷式程式設計

體驗go語言的風騷式程式設計

func formapTest() {
	var arrayi= [...] int{1, 2, 3, 4, 5, 6, 7, 78, 9, 10}
	for index, c := range arrayi {
		fmt.Printf("array[%d] = %d", index, c)
	}

	str := "go語言的學習和啪啪"
	for i, ch := range str {
		fmt.Println(i, ch) //ch的型別為rune unicode編碼
	}
	//輸出為:28907  (Unicode編碼時,兩個位元組代表一個字元)

	n := len(str)
	for i := 0; i < n; i++ {
		ch := str[i] // 依據下標取字串中的字元,型別為byte
		fmt.Println(i, ch)
		//輸出為utf-8編碼,一個漢字字元佔三個位元組
	}

	array := []rune(str)
	n = len(array)
	for i := 0; i < n; i++ {
		ch := array[i]     // 依據下標取字串中的字元,型別為byte
		 fmt.Println(i, ch) //unicode 編碼轉十進位制輸出
		//golang中字元型別的實際資料型別為uint32,以for迴圈遍歷的方式輸出結果都是Unicode編碼的
	}
	//var str string= "yyh,hello,卡卡論壇,好厲害哦"
	//fmt.Print(str)
	fmt.Print("\n================================\n")
	for i , ch :=  range str{
		//fmt.Printf("(%d, %c)",i,ch)
		fmt.Printf("(%d, %x)",i,ch)
	}

	fmt.Print(utf8.RuneCountInString(str))
	fmt.Print("================================\n")
	bytes := [] byte(str)

	//for len(bytes) > 0 {
		r, size := utf8.DecodeRune(bytes)
		fmt.Printf("%c  %d",r,size)
	//}
	fmt.Println()
	fmt.Println()
	fmt.Println()
	for i,c := range bytes{

		r,_ :=utf8.DecodeRune(bytes)
		fmt.Printf("%d  %c %x \n",i,r,c)
	}
	for i ,ch := range []rune(str){
		fmt.Printf("%d: %c  ",i,ch)
	}

	str2 := "123 我按時 的發ad fg票 是否 adfg 發 發生a f發 的sj df"
	sps   := strings.Split(str2," ")
	sps = strings.Fields(str2)
	var isContact  =  strings.Contains(str2,"你們")
	fmt.Println(sps)
	fmt.Println(isContact)
}