added defer example

decided not to use file i/o as an example because external file access
is rare in other tutorials.
This commit is contained in:
Quint Guvernator 2014-02-02 15:11:15 -05:00
parent 8d82b55947
commit ded11e254f

View File

@ -7,6 +7,7 @@ contributors:
- ["Sonia Keys", "https://github.com/soniakeys"]
- ["Christopher Bess", "https://github.com/cbess"]
- ["Jesse Johnson", "https://github.com/holocronweaver"]
- ["Quint Guvernator", "https://github.com/qguv"]
---
Go was created out of the need to get work done. It's not the latest trend
@ -180,9 +181,21 @@ func learnFlowControl() {
goto love
love:
learnDefer() // A quick detour to an important keyword.
learnInterfaces() // Good stuff coming up!
}
func learnDefer() (ok bool) {
// deferred statements are executed just before the function returns.
defer fmt.Println("deferred statements execute in reverse (LIFO) order.")
defer fmt.Println("\nThis line is being printed first because")
// defer is commonly used to close a file, so the function closing the file
// stays close to the function opening the file
return true
}
// Define Stringer as an interface type with one method, String.
type Stringer interface {
String() string