40 lines
		
	
	
		
			822 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			822 B
		
	
	
	
		
			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 | ||
|  | 
 | ||
|  | func main() { | ||
|  | 	// aliased types are the same types | ||
|  | 	// just with different names | ||
|  | 	// for readability and refactoring | ||
|  | 	var ( | ||
|  | 		// type byte = int8 | ||
|  | 		byteVal  byte | ||
|  | 		uint8Val uint8 | ||
|  | 		intVal   int | ||
|  | 	) | ||
|  | 
 | ||
|  | 	uint8Val = byteVal // ok | ||
|  | 
 | ||
|  | 	var ( | ||
|  | 		// type rune = int32 | ||
|  | 		runeVal  rune | ||
|  | 		int32Val int32 | ||
|  | 	) | ||
|  | 
 | ||
|  | 	runeVal = int32Val // ok | ||
|  | 
 | ||
|  | 	runeVal = rune(int32Val) | ||
|  | 	runeVal = rune(runeVal) | ||
|  | 
 | ||
|  | 	// keep the compiler happy | ||
|  | 	_, _, _, _ = byteVal, uint8Val, intVal, runeVal | ||
|  | } | ||
|  | 
 | ||
|  | // For the curious - compiler internals: | ||
|  | // https://github.com/golang/go/blob/4f1f503373cda7160392be94e3849b0c9b9ebbda/src/cmd/compile/internal/gc/universe.go#L409 |