轨道
/
Gleam
Gleam
/
练习
/
千层面
千层面

千层面

学习练习

简介

基础

函数

在 Gleam 中,函数使用pub fn语法定义。

pub fn add(x: Int, y: Int) -> Int {
  x + y
}

这个函数接收两个实参,类型都是Int,并返回一个类型为Int的值。Gleam 中没有return关键字,函数中最后一个表达式的值总是会被_隐式返回_。

实参和返回值的类型标注是可选的,并且 Gleam 始终会对你的代码进行完整的类型检查。通常,Gleam 程序员为了清晰会给函数加上类型标注,但如果愿意,也可以省略。

pub fn add(x, y) {
  x + y
}

可以使用function_name(argument1, argument2)语法调用函数。

pub fn double(x: Int) -> Int {
  // Call the add function defined above
  add(x, x)
}

变量

在 Gleam 中,变量使用let name = expression语法定义。

pub fn main() {
  let count = 1
}

变量可以用类型标注来声明。和函数实参一样,这些标注是可选的,不过大多数 Gleam 程序员为了简洁会省略变量的类型标注。

pub fn main() {
  let count: Int = 1
}

字符串字面量

在 Gleam 中,字符串使用双引号书写。

pub fn greeting() {
  "Hello, world!"
}

代码注释

注释可以用来给阅读源代码的其他开发者留下说明。Gleam 中的注释是以//开头的单行。

pub fn main() {
  // This is a comment
  let x = 1
}

说明

在这个练习中,你将编写一些代码,帮你照着最喜欢的食谱做出一份美味的千层面。

一共有五个任务,都与烤千层面所花的时间有关。

1. 定义烤箱的预期时间(分钟)

定义expected_minutes_in_oven函数,它不接受任何实参,返回千层面应该在烤箱里烤多少分钟。根据食谱,预期的烤箱时间是 40 分钟:

expected_minutes_in_oven()
// -> 40

2. 计算剩余的烤箱时间(分钟)

定义remaining_minutes_in_oven函数,它接受千层面已经在烤箱里烤了多少分钟作为实参,并基于上一个任务中得出的预期烤箱时间,返回千层面还需要在烤箱里烤多少分钟。

remaining_minutes_in_oven(30)
// -> 10

3. 计算准备时间(分钟)

定义preparation_time_in_minutes函数,它接受你往千层面里加了几层作为实参,返回你准备千层面花了多少分钟,假设每准备一层需要 2 分钟。

preparation_time_in_minutes(2)
// -> 4

4. 计算总的工作时间(分钟)

定义total_time_in_minutes函数,它接受两个实参:第一个实参是你往千层面里加的层数,第二个实参是千层面已经在烤箱里烤了多少分钟。该函数应返回你烹饪千层面总共花了多少分钟,也就是准备时间加上千层面此刻已经在烤箱里烤的时间。

total_time_in_minutes(3, 10)
// -> 16

5. 创建千层面烤好的通知

定义alarm函数,它不接受任何实参,返回一条表示千层面可以吃了的消息。

alarm()
// -> "Ding!"
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Gleam Exercism

准备好开始 千层面 了吗?

注册 Exercism,借助 33 个概念122 个练习 和真人导师指导,学习并掌握 Gleam,全部免费。