官术网_书友最值得收藏!

Functions

Opa is a functional language. One of its features is that functions are regular values, which means a function may be passed as a parameter or returned as a result. As such, they follow the same naming rules as any other value.

function f(x,y){      // function f with the two parameters x and y
  x + y + 1
}
function int f(x,y){  // explicitly indicates the return type
  x + y + 1
}

Last expression return

You may notice that there is no return inside the body of a function. That's because Opa uses last expression return, which means the last expression of a function is the return value. For example:

function max(x,y){
  if(x >= y) x else y
}

If x is greater than or equal to y, then x is the last expression and x will be returned; if y is greater than x, then y is the last expression and y will be returned.

Modules

Functionalities are usually regrouped into modules; for example:

module  M {
  x = 1
  y = x
  function test(){ jlog("testing") }
}

We can access the content of a module by using the dot operator (.); for instance, M.x, M.y, and M.test. Actually, the content of a module is not field definitions, but bindings. In this example, we bind integer 1 to variable x, and bind the value of variable x to variable y.

主站蜘蛛池模板: 普兰县| 广河县| 光山县| 清苑县| 深州市| 兴化市| 海盐县| 平潭县| 涟水县| 客服| 镶黄旗| 灵武市| 湟源县| 日喀则市| 富民县| 孝昌县| 交城县| 弥渡县| 建湖县| 姚安县| 庆元县| 威宁| 宁强县| 郧西县| 英德市| 江城| 绍兴县| 察雅县| 肇东市| 砚山县| 邮箱| 乌拉特中旗| 双流县| 瓦房店市| 平原县| 萨迦县| 巍山| 德惠市| 长泰县| 读书| 津南区|