Skip to content

Commit eba495a

Browse files
committed
bytes and format
1 parent 754b1b3 commit eba495a

File tree

3 files changed

+277
-67
lines changed

3 files changed

+277
-67
lines changed

chapter02/02.1.md

+35-36
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ fmt.Println(strings.Compare(a, a))
4242
fmt.Println(strings.Compare(b, a))
4343

4444
fmt.Println(strings.EqualFold("GO", "go"))
45-
fmt.Println(strings.EqualFold("壹","一"))
45+
fmt.Println(strings.EqualFold("壹", "一"))
4646
```
4747

4848
输出结果:
@@ -299,7 +299,7 @@ func LastIndexFunc(s string, f func(rune) bool) int
299299

300300
```go
301301
han := func(c rune) bool {
302-
return unicode.Is(unicode.Han, c) // 汉字
302+
return unicode.Is(unicode.Han, c) // 汉字
303303
}
304304
fmt.Println(strings.IndexFunc("Hello, world", han))
305305
fmt.Println(strings.IndexFunc("Hello, 世界", han))
@@ -401,15 +401,15 @@ Map 函数,将 s 的每一个字符按照 mapping 的规则做映射替换,
401401
示例:
402402
```go
403403
mapping := func(r rune) rune {
404-
switch {
405-
case r >= 'A' && r <= 'Z': // 大写字母转小写
406-
return r+32
407-
case r >= 'a' && r <= 'z': // 小写字母不处理
408-
return r
409-
case unicode.Is(unicode.Han,r): // 汉字换行
410-
return '\n'
411-
}
412-
return -1 // 过滤所有非字母、汉字的字符
404+
switch {
405+
case r >= 'A' && r <= 'Z': // 大写字母转小写
406+
return r + 32
407+
case r >= 'a' && r <= 'z': // 小写字母不处理
408+
return r
409+
case unicode.Is(unicode.Han, r): // 汉字换行
410+
return '\n'
411+
}
412+
return -1 // 过滤所有非字母、汉字的字符
413413
}
414414
fmt.Println(strings.Map(mapping, "Hello你#¥%……\n('World\n,好Hello^(&(*界gopher..."))
415415
```
@@ -466,14 +466,14 @@ func ToUpperSpecial(c unicode.SpecialCase, s string) string
466466
```go
467467
fmt.Println(strings.ToLower("HELLO WORLD"))
468468
fmt.Println(strings.ToLower("Ā Á Ǎ À"))
469-
fmt.Println(strings.ToLowerSpecial(unicode.TurkishCase,"壹"))
469+
fmt.Println(strings.ToLowerSpecial(unicode.TurkishCase, "壹"))
470470
fmt.Println(strings.ToLowerSpecial(unicode.TurkishCase, "HELLO WORLD"))
471471
fmt.Println(strings.ToLower("Önnek İş"))
472472
fmt.Println(strings.ToLowerSpecial(unicode.TurkishCase, "Önnek İş"))
473473

474474
fmt.Println(strings.ToUpper("hello world"))
475475
fmt.Println(strings.ToUpper("ā á ǎ à"))
476-
fmt.Println(strings.ToUpperSpecial(unicode.TurkishCase,"一"))
476+
fmt.Println(strings.ToUpperSpecial(unicode.TurkishCase, "一"))
477477
fmt.Println(strings.ToUpperSpecial(unicode.TurkishCase, "hello world"))
478478
fmt.Println(strings.ToUpper("örnek iş"))
479479
fmt.Println(strings.ToUpperSpecial(unicode.TurkishCase, "örnek iş"))
@@ -534,44 +534,44 @@ DÜNYANIN İLK BORSA YAPISI AİZONAİ KABUL EDİLİR
534534
## 2.1.11 修剪 ##
535535

536536
```go
537-
// Trim 函数,将 s 左侧和右侧中匹配 cutset 中的任一字符的字符去掉
537+
// 将 s 左侧和右侧中匹配 cutset 中的任一字符的字符去掉
538538
func Trim(s string, cutset string) string
539-
// TrimLeft 函数,将 s 左侧的匹配 cutset 中的任一字符的字符去掉
539+
// 将 s 左侧的匹配 cutset 中的任一字符的字符去掉
540540
func TrimLeft(s string, cutset string) string
541-
// TrimRight 函数,将 s 右侧的匹配 cutset 中的任一字符的字符去掉
541+
// 将 s 右侧的匹配 cutset 中的任一字符的字符去掉
542542
func TrimRight(s string, cutset string) string
543-
// TrimPrefix 函数,如果 s 的前缀为 prefix 则返回去掉前缀后的 string , 否则 s 没有变化。
543+
// 如果 s 的前缀为 prefix 则返回去掉前缀后的 string , 否则 s 没有变化。
544544
func TrimPrefix(s, prefix string) string
545-
// TrimSuffix 函数,如果 s 的后缀为 suffix 则返回去掉后缀后的 string , 否则 s 没有变化。
545+
// 如果 s 的后缀为 suffix 则返回去掉后缀后的 string , 否则 s 没有变化。
546546
func TrimSuffix(s, suffix string) string
547-
// TrimSpace 函数,将 s 左侧和右侧的间隔符去掉。常见间隔符包括:'\t', '\n', '\v', '\f', '\r', ' ', U+0085 (NEL)
547+
// 将 s 左侧和右侧的间隔符去掉。常见间隔符包括:'\t', '\n', '\v', '\f', '\r', ' ', U+0085 (NEL)
548548
func TrimSpace(s string) string
549-
// TrimFunc 函数,将 s 左侧和右侧的匹配 f 的字符去掉
549+
// 将 s 左侧和右侧的匹配 f 的字符去掉
550550
func TrimFunc(s string, f func(rune) bool) string
551-
// TrimLeftFunc 函数,将 s 左侧的匹配 f 的字符去掉
551+
// 将 s 左侧的匹配 f 的字符去掉
552552
func TrimLeftFunc(s string, f func(rune) bool) string
553-
// TrimRightFunc 函数,将 s 右侧的匹配 f 的字符去掉
553+
// 将 s 右侧的匹配 f 的字符去掉
554554
func TrimRightFunc(s string, f func(rune) bool) string
555555
```
556556

557557
包含了 9 个相关函数用于修剪字符串。
558558

559559
举个例子:
560560
```go
561-
x:="!!!@@@你好,!@#$ Gophers###$$$"
561+
x := "!!!@@@你好,!@#$ Gophers###$$$"
562562
fmt.Println(strings.Trim(x, "@#$!%^&*()_+=-"))
563563
fmt.Println(strings.TrimLeft(x, "@#$!%^&*()_+=-"))
564564
fmt.Println(strings.TrimRight(x, "@#$!%^&*()_+=-"))
565565
fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))
566566
fmt.Println(strings.TrimPrefix(x, "!"))
567567
fmt.Println(strings.TrimSuffix(x, "$"))
568568

569-
f:=func(r rune) bool {
570-
return !unicode.Is(unicode.Han,r) // 非汉字返回 true
569+
f := func(r rune) bool {
570+
return !unicode.Is(unicode.Han, r) // 非汉字返回 true
571571
}
572-
fmt.Println(strings.TrimFunc(x, f ))
573-
fmt.Println(strings.TrimLeftFunc(x, f ))
574-
fmt.Println(strings.TrimRightFunc(x, f ))
572+
fmt.Println(strings.TrimFunc(x, f))
573+
fmt.Println(strings.TrimLeftFunc(x, f))
574+
fmt.Println(strings.TrimRightFunc(x, f))
575575
```
576576

577577
输出结果:
@@ -632,8 +632,8 @@ func NewReader(s string) *Reader
632632

633633
```go
634634
type Builder struct {
635-
addr *Builder // of receiver, to detect copies by value
636-
buf []byte
635+
addr *Builder // of receiver, to detect copies by value
636+
buf []byte
637637
}
638638
```
639639
该类型实现了 io 包下的 Writer, ByteWriter, StringWriter 等接口,可以向该对象内写入数据,Builder 没有实现 Reader 等接口,所以该类型不可读,但提供了 String 方法可以获取对象内的数据。
@@ -647,7 +647,6 @@ func (b *Builder) WriteRune(r rune) (int, error)
647647
func (b *Builder) Write(p []byte) (int, error)
648648
// WriteRune 方法向 b 写入字符串 s
649649
func (b *Builder) WriteString(s string) (int, error)
650-
651650
// Len 方法返回 b 的数据长度。
652651
func (b *Builder) Len() int
653652
// Cap 方法返回 b 的 cap。
@@ -667,13 +666,13 @@ String 方法可以方便的获取 Builder 的内容。
667666

668667
举个例子:
669668
```go
670-
b:=strings.Builder{}
671-
_=b.WriteByte('7')
672-
n,_:=b.WriteRune('')
669+
b := strings.Builder{}
670+
_ = b.WriteByte('7')
671+
n, _ := b.WriteRune('')
673672
fmt.Println(n)
674-
n,_=b.Write([]byte("Hello, World"))
673+
n, _ = b.Write([]byte("Hello, World"))
675674
fmt.Println(n)
676-
n,_=b.WriteString("你好,世界")
675+
n, _ = b.WriteString("你好,世界")
677676
fmt.Println(n)
678677
fmt.Println(b.Len())
679678
fmt.Println(b.Cap())

0 commit comments

Comments
 (0)