40 lines
		
	
	
		
			950 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			950 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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "fmt"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func main() {
							 | 
						||
| 
								 | 
							
									a := [3]int{6, 9, 3}
							 | 
						||
| 
								 | 
							
									b := [3]int{3, 9, 6}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if a == b {
							 | 
						||
| 
								 | 
							
										fmt.Println("they're equal!")
							 | 
						||
| 
								 | 
							
									} else {
							 | 
						||
| 
								 | 
							
										fmt.Println("they're not equal! a==b?", a == b)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										// but, they're comparable
							 | 
						||
| 
								 | 
							
										// since their types are identical
							 | 
						||
| 
								 | 
							
										fmt.Printf("1st array's type is %T\n", a)
							 | 
						||
| 
								 | 
							
										fmt.Printf("2nd array's type is %T\n", b)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										// go compares arrays like this
							 | 
						||
| 
								 | 
							
										// it compares the elements one by one
							 | 
						||
| 
								 | 
							
										fmt.Println(a[0] == b[0]) // false
							 | 
						||
| 
								 | 
							
										fmt.Println(a[1] == b[1]) // true
							 | 
						||
| 
								 | 
							
										fmt.Println(a[2] == b[2]) // false
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										// actually Go will quit comparing these arrays
							 | 
						||
| 
								 | 
							
										//   once it sees unequal items
							 | 
						||
| 
								 | 
							
										//
							 | 
						||
| 
								 | 
							
										// so, it will stop the comparison (short-circuit)
							 | 
						||
| 
								 | 
							
										//   when it sees the first item is false
							 | 
						||
| 
								 | 
							
										//   and it will return false
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |