Syntax

[Previous << Language Reference](https://qiita.com/flowcadence/items/9b08c176d64eff402a4d)
[Next >> Constants and Variable Declarations](https://qiita.com/flowcadence/items/7224da752f0788e6a5e6)

https://qiita.com/flowcadence/items/3073d69c6e9895e68b5a#cadenceの言語仕様を学ぶ

<h1 id="Comments">Comments</h1>

コメントはコードにドキュメントを添付するのに使用できます。コメントとは実行されないテキストのことです。

単一行のコメントは2つのスラッシュ（//）で始まります。これらのコメントは単独で改行しても、コードの行の直後に配置してもかまいません。
```ruby
// This is a comment on a single line.
// Another comment line that is not executed.

let x = 1  // Here is another comment after a line of code.
```
複数行のコメントは、スラッシュとアスタリスク（/*）で始まり、アスタリスクとスラッシュ（*/）で終わります。
```ruby
/* This is a comment which
spans multiple lines. */
```
コメントはネスト(入れ子に)することができます。
```
/* /* this */ is a valid comment */
```
複数行のコメントは均衡を取ります。
```ruby
/* this is a // comment up to here */ this is not part of the comment */
```

<h1 id="Documentation-Comments">Documentation Comments</h1>

ドキュメントコメント（「doc-strings」または「doc-commentとも呼ばれる）は、ツールで処理できる特別なコメントのセットです。例えば、人間が読める形式のドキュメントを生成したり、IDEでドキュメントを提供したりするために使用されます。

ドキュメントコメントは、各行の最初に3つのスラッシュ（///）を付けたり、`/**`および `**/`で囲むことができます。
```ruby
/// This is a documentation comment for `x`.
/// It spans multiple lines.

let x = 1
```
```ruby
/**
  This is a documentation comment
  which also spans multiple lines.
**/
```

<h1 id="Identifiers">Identifiers</h1>

識別子は、大文字または小文字（A-Z、a-z）またはアンダースコア（_）で始まります。これに続いて、0文字以上の大文字と小文字、アンダースコア、数字（0-9）が続けます。識別子は数字で始まることはできません。
```ruby
/* Valid: title-case */
PersonID

/* Valid: with underscore */
token_name

/* Valid: leading underscore and characters */
_balance

// Valid: leading underscore and numbers
_8264

/* Valid: characters and number */
account2

/* Invalid: leading number */
1something

/* Invalid: invalid character # */
_#1

/* Invalid: various invalid characters */
!@#$%^&*
```

<h1 id="Reserved-identifiers">Reserved identifiers</h1>

以下の識別子は、言語のキーワードとして予約されています。
* `if`, `else`, `while`, `for`, `in`, `as`
* `break`, `continue`, `return`
* `true`, `false`, `nil`
* `let`, `var`
* `create`, `destroy`, `emit`
* `fun`, `pre`, `post`、
* `auth`, `access`
* `self`, `init`
* `contract`, `event`, `struct`, `resource`, `interface`, `entitlement`, `enum`, `mapping`, `attachment`, `result`
* `transaction`, `prepare`, `execute`
* `switch`, `case`, `default`
* `import`, `include`
* `require`, `requires`, `static`, `native`, `pub`, `priv`, `try`, `catch`, `finally`, `goto`, `const`, `export`, `throw`, `throws`, `where`, `final`, `internal`, `typealias`, `repeat`, `guard`, `is`
<h1 id="Conventions">Conventions</h1>

慣例として、変数、定数、関数は小文字の識別子を使用し、型は大文字表記の識別子を使用します。
<h1 id="Semicolons">Semicolons</h1>

セミコロン（`;`）は、宣言とステートメントの区切りとして使用されます。セミコロンは、宣言およびステートメントの後に配置できますが、宣言とステートメントの間に配置する場合は省略できます。ただし、1つのステートメントが1行に表示される場合に限ります。

複数のステートメントが1行に表示される場合は、セミコロンを使用して区切る必要があります。

```ruby
/* Declare a constant, without a semicolon. */
let a = 1

/* Declare a variable, with a semicolon. */
var b = 2;

/* Declare a constant and a variable on a single line, separated by semicolons. */
let d = 1; var e = 2
```

翻訳元

https://cadence-lang.org/docs/language/syntax

***
<b>[Previous << Language Reference](https://qiita.com/flowcadence/items/9b08c176d64eff402a4d)
</b>

[Flow blockchain / Cadence version1.0ドキュメント](https://qiita.com/flowcadence/items/3073d69c6e9895e68b5a) (Syntax)

<b>[Next >> Constants and Variable Declarations](https://qiita.com/flowcadence/items/7224da752f0788e6a5e6)</b>