40 lines
		
	
	
		
			961 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			961 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright © 2018 Inanc Gumus
 | |
| // Learn Go Programming Course
 | |
| // License: https://creativecommons.org/licenses/by-nc-sa/4.0/
 | |
| //
 | |
| // For more tutorials  : https://learngoprogramming.com
 | |
| // In-person training  : https://www.linkedin.com/in/inancgumus/
 | |
| // Follow me on twitter: https://twitter.com/inancgumus
 | |
| 
 | |
| package main
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"unicode/utf8"
 | |
| )
 | |
| 
 | |
| func main() {
 | |
| 	// strings are made up of bytes
 | |
| 
 | |
| 	// len function counts the bytes in a string value.
 | |
| 	//
 | |
| 	// This string literal contains unicode characters.
 | |
| 	//
 | |
| 	// And, unicode characters can be 1-4 bytes.
 | |
| 	// So, "İnanç" is 7 bytes long, not 5.
 | |
| 	//
 | |
| 	// İ = 2 bytes
 | |
| 	// n = 1 byte
 | |
| 	// a = 1 byte
 | |
| 	// n = 1 byte
 | |
| 	// ç = 2 bytes
 | |
| 	// TOTAL = 7 bytes
 | |
| 	name := "İnanç"
 | |
| 	fmt.Printf("%q is %d bytes\n", name, len(name))
 | |
| 
 | |
| 	// To get the actual characters (or runes) inside
 | |
| 	// a utf-8 encoded string value, you should do this:
 | |
| 	fmt.Printf("%q is %d characters\n",
 | |
| 		name, utf8.RuneCountInString(name))
 | |
| }
 |