com.github.acrisci.commander.Program的使用記錄

今天在做讀代碼的時候,看見了項目中的com.github.acrisci.commander.Program這個包的使用,由於沒有見過,所以學習了一遍,在這裏記錄一下,我的博客只是記錄,如果沒有解決你的問題,請移步github

這個包是對命令行輸入信息的解析,使得解析後的數據運用到項目中。

首先是導入,我用的是maven,所以直接在maven repository中找到相關包導入,然後是代碼中的使用,

這是官方提供的示例:

import com.github.acrisci.commander.Program

var program = new Program()
  .version("0.0.1")
  .option("-p, --peppers", "Add peppers")
  .option("-P, --pineapple", "Add pineapple")
  .option("-b, --bbq-sauce", "Add bbq sauce")
  .option("-c, --cheese [type]", "Add the specified type of cheese [marble]", default="marble")
  .parse(args)

if (args.isEmpty)
  program.help

println("you ordered a pizza with:")
if (program.peppers)
  println("  - peppers")
if (program.pineapple)
  println("  - pineapple")
if (program.bbqSauce)
  println("  - bbq")
println("  - " + program.cheese + " cheese")

創建是使用new Program(),

重要的是後面的配置,使用version是對版本的配置,這個自行選擇,option是對命令行信息參數的確定,首先是對參數的命名,例如-p, --peppers,後面使用這個參數也是用這個名字,然後是提示信息,在我的項目中,還用到required,這個參數的值是一個boolean,我在官網上沒有找到解釋,也還沒有看源代碼,只是暫時猜測這個是指如果值爲true是指該項必須填寫,暫時這樣理解,後面看完源代碼在進行修改。還用到了fn這個參數,這個的意思是強轉類型,就是將數據轉爲你需要的類型,值是一個佔位符的寫法,例如_.toInt就是轉化爲Int。

最後是對使用parse方法將分解執行,後面就可以調用了

調用也很簡單,就是program.option,我的項目是將這些options封裝在一個樣例類中,這樣就可以用於其他包。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章