Carbon语言 函数

函数是由多条语句组成的代码块,具有一定功能,用于完成一项特定任务。

通常每一个程序都包含有很多的函数,系统通过函数来划分不同功能,将整体任务进行分解。

fn Add(a: i64, b: i64) -> i64 {
  return a + b;
}

Carbon中这个Add函数的写法和Rust中实现一个Add几乎一模一样。 比如声明参数的时候类型在后,并且冒号分割的参数写法。还有fn关键字。 当然在函数体内逻辑复杂的时候,会和Rust不同,因为Rust还有不带分号的表达式语法,表达式的值就是整个函数的值。Carbon没有那种怪异的东西。 另外 Carbon 也能进行返回值的类型推导:

fn Add(a: i64, b: i64) -> auto {
  return a + b;
}

一个更复杂的函数的例子:

package Geometry api;

import Math; // 导入其他包

class Circle { // 定义一个Circle类
    var r: f32;
}

fn ScaleAreaAndAppend(circle: Circle, log2_scale: i32,
                      results: Vector(f32)*) {
  var area: f32 = Math.Pi * c.r * c.r;
  let scale: i32 = 1 << log2_scale;
  area *= scale;
  results->append(area);
}

参数默认都是常量,除非声明成指针类型。

Carbon 支持面向对象编程。类是 Carbon 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类被称为类的成员。1 ...