github.com/spotify/syslog-redirector-golang@v0.0.0-20140320174030-4859f03d829a/src/pkg/unicode/utf8/example_test.go (about)

     1  package utf8_test
     2  
     3  import (
     4  	"fmt"
     5  	"unicode/utf8"
     6  )
     7  
     8  func ExampleDecodeLastRune() {
     9  	b := []byte("Hello, 世界")
    10  
    11  	for len(b) > 0 {
    12  		r, size := utf8.DecodeLastRune(b)
    13  		fmt.Printf("%c %v\n", r, size)
    14  
    15  		b = b[:len(b)-size]
    16  	}
    17  	// Output:
    18  	// 界 3
    19  	// 世 3
    20  	//   1
    21  	// , 1
    22  	// o 1
    23  	// l 1
    24  	// l 1
    25  	// e 1
    26  	// H 1
    27  }
    28  
    29  func ExampleDecodeLastRuneInString() {
    30  	str := "Hello, 世界"
    31  
    32  	for len(str) > 0 {
    33  		r, size := utf8.DecodeLastRuneInString(str)
    34  		fmt.Printf("%c %v\n", r, size)
    35  
    36  		str = str[:len(str)-size]
    37  	}
    38  	// Output:
    39  	// 界 3
    40  	// 世 3
    41  	//   1
    42  	// , 1
    43  	// o 1
    44  	// l 1
    45  	// l 1
    46  	// e 1
    47  	// H 1
    48  
    49  }
    50  
    51  func ExampleDecodeRune() {
    52  	b := []byte("Hello, 世界")
    53  
    54  	for len(b) > 0 {
    55  		r, size := utf8.DecodeRune(b)
    56  		fmt.Printf("%c %v\n", r, size)
    57  
    58  		b = b[size:]
    59  	}
    60  	// Output:
    61  	// H 1
    62  	// e 1
    63  	// l 1
    64  	// l 1
    65  	// o 1
    66  	// , 1
    67  	//   1
    68  	// 世 3
    69  	// 界 3
    70  }
    71  
    72  func ExampleDecodeRuneInString() {
    73  	str := "Hello, 世界"
    74  
    75  	for len(str) > 0 {
    76  		r, size := utf8.DecodeRuneInString(str)
    77  		fmt.Printf("%c %v\n", r, size)
    78  
    79  		str = str[size:]
    80  	}
    81  	// Output:
    82  	// H 1
    83  	// e 1
    84  	// l 1
    85  	// l 1
    86  	// o 1
    87  	// , 1
    88  	//   1
    89  	// 世 3
    90  	// 界 3
    91  }
    92  
    93  func ExampleEncodeRune() {
    94  	r := '世'
    95  	buf := make([]byte, 3)
    96  
    97  	n := utf8.EncodeRune(buf, r)
    98  
    99  	fmt.Println(buf)
   100  	fmt.Println(n)
   101  	// Output:
   102  	// [228 184 150]
   103  	// 3
   104  }
   105  
   106  func ExampleFullRune() {
   107  	buf := []byte{228, 184, 150} // 世
   108  	fmt.Println(utf8.FullRune(buf))
   109  	fmt.Println(utf8.FullRune(buf[:2]))
   110  	// Output:
   111  	// true
   112  	// false
   113  }
   114  
   115  func ExampleFullRuneInString() {
   116  	str := "世"
   117  	fmt.Println(utf8.FullRuneInString(str))
   118  	fmt.Println(utf8.FullRuneInString(str[:2]))
   119  	// Output:
   120  	// true
   121  	// false
   122  }
   123  
   124  func ExampleRuneCount() {
   125  	buf := []byte("Hello, 世界")
   126  	fmt.Println("bytes =", len(buf))
   127  	fmt.Println("runes =", utf8.RuneCount(buf))
   128  	// Output:
   129  	// bytes = 13
   130  	// runes = 9
   131  }
   132  
   133  func ExampleRuneCountInString() {
   134  	str := "Hello, 世界"
   135  	fmt.Println("bytes =", len(str))
   136  	fmt.Println("runes =", utf8.RuneCountInString(str))
   137  	// Output:
   138  	// bytes = 13
   139  	// runes = 9
   140  }
   141  
   142  func ExampleRuneLen() {
   143  	fmt.Println(utf8.RuneLen('a'))
   144  	fmt.Println(utf8.RuneLen('界'))
   145  	// Output:
   146  	// 1
   147  	// 3
   148  }
   149  
   150  func ExampleRuneStart() {
   151  	buf := []byte("a界")
   152  	fmt.Println(utf8.RuneStart(buf[0]))
   153  	fmt.Println(utf8.RuneStart(buf[1]))
   154  	fmt.Println(utf8.RuneStart(buf[2]))
   155  	// Output:
   156  	// true
   157  	// true
   158  	// false
   159  }
   160  
   161  func ExampleValid() {
   162  	valid := []byte("Hello, 世界")
   163  	invalid := []byte{0xff, 0xfe, 0xfd}
   164  
   165  	fmt.Println(utf8.Valid(valid))
   166  	fmt.Println(utf8.Valid(invalid))
   167  	// Output:
   168  	// true
   169  	// false
   170  }
   171  
   172  func ExampleValidRune() {
   173  	valid := 'a'
   174  	invalid := rune(0xfffffff)
   175  
   176  	fmt.Println(utf8.ValidRune(valid))
   177  	fmt.Println(utf8.ValidRune(invalid))
   178  	// Output:
   179  	// true
   180  	// false
   181  }
   182  
   183  func ExampleValidString() {
   184  	valid := "Hello, 世界"
   185  	invalid := string([]byte{0xff, 0xfe, 0xfd})
   186  
   187  	fmt.Println(utf8.ValidString(valid))
   188  	fmt.Println(utf8.ValidString(invalid))
   189  	// Output:
   190  	// true
   191  	// false
   192  }