程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 雙token完成token超時戰略示例

雙token完成token超時戰略示例

編輯:關於JAVA

雙token完成token超時戰略示例。本站提示廣大學習愛好者:(雙token完成token超時戰略示例)文章只能為提供參考,不一定能成為您想要的結果。以下是雙token完成token超時戰略示例正文


Proc對象

Proc是由塊轉換來的對象。創立一個Proc共有四種辦法,分離是:

示例代碼

# 法一
inc = Proc.new { | x | x + 1}
inc.call(2) #=> 3

# 法二
inc = lambda {| x | x + 1 }
inc.call(2) #=> 3

# 法三
inc = ->(x) { x + 1}
inc.call(2) #=> 3

# 法四
inc = proc {|x| x + 1 }
inc.call(2) #=> 3

除下面的四種以外,還有一種經由過程&操作符的方法,將代碼塊與Proc對象停止轉換。假如須要將某個代碼塊作為參數傳遞給辦法,須要經由過程為這個參數添加&符號,而且其地位必需是在參數的最初一個

&符號的寄義是: 這是一個Proc對象,我想把它當做代碼塊來應用。去失落&符號,將能再次獲得一個Proc對象。

示例代碼

def my_method(&the_proc)
  the_proc
end

p = my_method {|name| “Hello, #{name} !”}
p.class  #=> Proc
p.call(“Bill”)  #=> “Hello,Bill”


def my_method(greeting)
  “#{greeting}, #{yield}!”
end

my_proc = proc { “Bill” }
my_method(“Hello”, &my_proc)

一些須要留意的處所

在應用block時,我會疏忽proc的存在,我將proc定位為一個幕後的任務者。我常常寫相似上面的代碼,

 def f(...)
  ...
  yield
  ...
 end

 def f(..., &p)
  ...
  p.call
  ...
 end

 def f(..., &p)
  instance_eval &p
  ...
 end

 def f(..., &p)
  ...
  defime_method m, &p
  ...
 end

有些老手會寫相似上面的一履行就會報錯的代碼,

 

 def f(..., &p)
  instance_eval p
 end

 def f(..., p)
  instance_eval p.call
 end

也有如許寫的,

 def f(..., &p)
  instance_eval do
   p.call
  end
 end

或許

 def f(...)
  instance_eval do
   yield
  end
 end

我乃至寫過相似上面的代碼,

 def f(...)
  instance_eval yield
 end

我們常常在該掛block的時刻,卻把proc對象當參數傳給辦法了, 或許不明確&p就是block可以直接交給辦法應用,我已經也犯過如許的毛病就是由於沒有把block和proc准確的辨別開來, &p是block, p是proc,不到萬不得已的情形下不要顯式地創立proc,每當我對block和proc之間的關系犯懵懂時,我就會念上幾句。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved