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

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.

主站蜘蛛池模板: 台湾省| 顺平县| 阜城县| 阿鲁科尔沁旗| 腾冲县| 玉龙| 北碚区| 武安市| 河东区| 浦县| 龙口市| 昌平区| 水富县| 历史| 阿图什市| 江油市| 南皮县| 中牟县| 山东| 开封市| 水城县| 思南县| 丹寨县| 建昌县| 海门市| 寿光市| 余姚市| 明水县| 郎溪县| 松滋市| 兴安县| 阆中市| 涪陵区| 宜春市| 锡林浩特市| 公安县| 昌图县| 临夏市| 仙桃市| 嘉鱼县| 达拉特旗|