| 
									
										
										
										
											2019-10-30 19:34:44 +03:00
										 |  |  | // 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-17 11:14:54 +03:00
										 |  |  | package main | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import "fmt" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // --------------------------------------------------------- | 
					
						
							|  |  |  | // EXERCISE: Refactor | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | //   In the headerOf function, instead of using a switch, | 
					
						
							|  |  |  | //   use a map. Declare it at the package-level. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | // RESTRICTION | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | //   For panicking, use a deferred function and a named param. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | // EXPECTED OUTPUT | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | //   Please run the solution. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | // --------------------------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func main() { | 
					
						
							|  |  |  | 	fmt.Println(headerOf("gif")) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func headerOf(format string) string { | 
					
						
							|  |  |  | 	switch format { | 
					
						
							|  |  |  | 	case "png": | 
					
						
							|  |  |  | 		return "\x89PNG\r\n\x1a\n" | 
					
						
							|  |  |  | 	case "jpg": | 
					
						
							|  |  |  | 		return "\xff\xd8\xff" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	panic("unknown format: " + format) | 
					
						
							|  |  |  | } |