Go言語入門#7
5552 ワード
文字列
func main() {
poet1 := "죽는 날까지 하늘을 우러러\n한 점 부끄럼이 없기를,\n잎새에 이는 바람에도\n나는 괴로워했다."
poet2 := `죽는 날까지 하늘을 우러러
한 점 부끄럼이 없기를,
잎새에 이는 바람에도
나는 괴로워했다.`
fmt.Println(poet1)
fmt.Println(poet2)
}
文字列の使用~
:実際に入力を実行すればよいbackquoteでは、
文字列の順序
文字単位で出力
len(str)->戻りバイト長
だからlenを使ってforゲートを巡るわけにはいかない!(3バイトハングル文字分離)
[]タイプをruneに変換して巡回する
func main() {
str := "Hello 월드"
arr := []rune(str)
for i := 0; i < len(arr); i++ {
fmt.Printf("타입:%T 값:%d 문자값:%c\n", arr[i], arr[i], arr[i])
}
}
/*
타입:int32 값:72 문자값:H
타입:int32 값:101 문자값:e
타입:int32 값:108 문자값:l
타입:int32 값:108 문자값:l
타입:int32 값:111 문자값:o
타입:int32 값:32 문자값:
타입:int32 값:50900 문자값:월
타입:int32 값:46300 문자값:드
*/
💡注意!静的配列として宣言できません!(ex-
arr := [8]rune(str)
) ぐるりと回る
func main() {
str := "Hello 월드"
for _, v := range.str {
fmt.Printf("타입:%T 값:%d 문자값:%c\n", v, v, v)
}
}
//결과는 위와 동일
文字列構造
goでは、代入演算子が右側のメモリ領域を左側の領域にサイズ別にコピーします.
ただし、文字列については?
文字列は、メモリ領域自体ではなく、メモリ領域の開始アドレスを持つポインタの概念です.
したがって、実際のデータ(文字列)の長さに関係なく8バイトに固定して代入演算を行うことができる
文字列は変更されません
不変
->文字列の一部のみを変更することはできません!
var str string = "Hello World"
str = "How are you?" //전체 변경 가능
str[2] = 'a' //이렇게 일부만을 바꿀 수는 없다 -> 에러 발생
例えば、str 2を既存のstr 1に貼り付けるとしても、
使用を続けるのではなく、既存のstr 1スペースを新しいスペースに保持します.
Reference
この問題について(Go言語入門#7), 我々は、より多くの情報をここで見つけました https://velog.io/@sheecho0804/Go언어-입문-7テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol