弄你好
逆序:好你neevaN
 <强>三,推迟的实际应用 
  
  func (r矩形)地区(wg * sync.WaitGroup) {
  如果r。长度& lt;0 {
  fmt。Printf("矩形% v的长度应大于0 \ n”,右)
  wg.Done ()
  返回
  }
  如果r。宽度& lt;0 {
  fmt。Printf("矩形% v的宽度应大于0 \ n”,右)
  wg.Done ()
  返回
  }
  面积:=r。长度* r.width
  fmt。Printf("矩形% v % d \ n”, r,区域)
  wg.Done ()
  }
  之前
  
  我们会发现上面wg.Done()被调用多次我们可以使用推迟来优化代码
  
  
  func (r矩形)地区(wg * sync.WaitGroup) {
  推迟wg.Done ()
  如果r。长度& lt;0 {
  fmt。Printf("矩形% v的长度应大于0 \ n”,右)
  返回
  }
  如果r。宽度& lt;0 {
  fmt。Printf("矩形% v的宽度应大于0 \ n”,右)
  返回
  }
  面积:=r。长度* r.width
  fmt。Printf("矩形% v % d \ n”, r,区域)
  }
  之前
  
  使用推迟延时调用,会在程序结束之前调用
   <强>下面举个例子: 
  
  
  主要包
  进口“fmt”
  func deferTest int (int) {
  推迟func () {
  数量+ +
  fmt。Println(“三:”,编号)
  } ()
  
  推迟func () {
  数量+ +
  fmt。Println(“二:”,编号)
  } ()
  
  推迟func () {
  数量+ +
  fmt。Println(“:”号)
  } ()
  
  返回数
  }
  
  函数main () {
  fmt。Println(“函数返回值:“,deferTest (0))
  }
  
  之前
  
  上面的代码打印的结果是:
  
  : 1 
  二:2 
  三:3 
  函数返回值:0 
  
  
   PS:推迟有一个重要的特性,即便函数抛出了异常,推迟也会被执行的。这样就不会因为程序出现了错误,导致资源不会被释放了。
  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
			
  