mirror of
				https://github.com/vbatts/talks.git
				synced 2025-10-25 18:10:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			467 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			467 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package main
 | |
| 
 | |
| func main() {
 | |
|   jeep := Hummer{}
 | |
|   h(jeep)
 | |
|   jeep.Where()
 | |
|   c(jeep)
 | |
| }
 | |
| 
 | |
| 
 | |
| type Car interface {
 | |
|   Honk()
 | |
|   Crank()
 | |
| }
 | |
| 
 | |
| func c(some interface{}) {
 | |
|   some.(Car).Crank()
 | |
| }
 | |
| func h(some interface{}) {
 | |
|   some.(Car).Honk()
 | |
| }
 | |
| 
 | |
| // Implement the Car interface
 | |
| type Hummer struct {
 | |
|   Car
 | |
| }
 | |
| 
 | |
| func (h Hummer) Honk() {
 | |
|   println("BEEP BEEP")
 | |
| }
 | |
| 
 | |
| func (h Hummer) Where() {
 | |
|   println("Who's got the keys to the jeep?")
 | |
| }
 | |
| 
 | |
| func (h Hummer) Crank() {
 | |
|   println("VROOOOOOM")
 | |
| }
 | |
| 
 |