58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// For more tutorials: https://blog.learngoprogramming.com
 | 
						|
//
 | 
						|
// Copyright © 2018 Inanc Gumus
 | 
						|
// Learn Go Programming Course
 | 
						|
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
 | 
						|
//
 | 
						|
 | 
						|
package main
 | 
						|
 | 
						|
import "fmt"
 | 
						|
 | 
						|
func main() {
 | 
						|
	str := "hey"
 | 
						|
	bytes := []byte{104, 101, 121}
 | 
						|
 | 
						|
	// same as: []byte("hey")
 | 
						|
	fmt.Printf(`"hey" as bytes   : %d`+"\n", []byte(str))
 | 
						|
 | 
						|
	// same as: string([]byte{104, 101, 121})
 | 
						|
	fmt.Printf("bytes as string  : %q\n", string(bytes))
 | 
						|
 | 
						|
	// runes are unicode codepoints (numbers)
 | 
						|
	fmt.Println()
 | 
						|
	fmt.Printf("%c                : %[1]d\n", 'h')
 | 
						|
	fmt.Printf("%c                : %[1]d\n", 'e')
 | 
						|
	fmt.Printf("%c                : %[1]d\n", 'y')
 | 
						|
 | 
						|
	// a rune literal is typeless
 | 
						|
	// you can put it in any numeric type
 | 
						|
	var (
 | 
						|
		anInt   int   = 'h'
 | 
						|
		anInt8  int8  = 'h'
 | 
						|
		anInt16 int16 = 'h'
 | 
						|
		anInt32 int32 = 'h'
 | 
						|
 | 
						|
		// rune literal's default type is: rune
 | 
						|
		// so, you don't need to specify it.
 | 
						|
		// aRune   rune  = 'h'
 | 
						|
		aRune = 'h'
 | 
						|
 | 
						|
		// and so on...
 | 
						|
	)
 | 
						|
 | 
						|
	fmt.Println()
 | 
						|
	fmt.Printf("rune literals are typeless:\n\t%T %T %T %T %T\n",
 | 
						|
		anInt, anInt8, anInt16, anInt32, aRune)
 | 
						|
 | 
						|
	fmt.Println()
 | 
						|
 | 
						|
	// all are the same rune
 | 
						|
 | 
						|
	// beginning with go 1.13 you can type: 0b0110_1000 instead
 | 
						|
	// fmt.Printf("%q as binary: %08[1]b\n", 0b0110_1000)
 | 
						|
	fmt.Printf("%q in decimal: %[1]d\n", 104)
 | 
						|
	fmt.Printf("%q in binary : %08[1]b\n", 'h')
 | 
						|
	fmt.Printf("%q in hex    : 0x%[1]x\n", 0x68)
 | 
						|
}
 |