6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Elixir 変数の頭文字 小ネタ

Last updated at Posted at 2022-01-18

#概要
変数の頭文字の記号の意味のまとめ  
しばらく触れないでいると忘れてしまいがちなので。

@(アットマーク) 

定数

例:
  @url "https://hogehoge.com/aiueo/sample.xml"
    @user_agent [ {"User-agent", "Elixir foo.boo.001@gmail.com"} ]
  
  def getBody do
         response = 
      @url |> HTTPoison.get!(@user_agent)
    response.body
  end
    

また、アノテーションとしても利用されている
@moduledoc ・・・ モジュールのドキュメント
@doc ・・・ 関数やマクロのドキュメント

)
defmodule MyApp.Blog do
  @moduledoc """
  The Blog context.
  """
  <<省略>>
  @doc """
  Returns the list of posts.
  ## Examples
      iex> list_posts()
      [%Post{}, ...]
  """
  def list_posts do
    Repo.all(Post)
  end
  <<省略>>

^(キャレット)

ピン演算子。束縛済みの変数を新たに束縛させたくない場合に使用する。  
パターンマッチのみで、上書きされない。

 (^無):
iex(1)> x = 123
123
iex(2)> x = 321
321

例  (^):
iex(1)> x = 123
123
iex(2)> ^x = 321
** (MatchError) no match of right hand side value: 321

iex(2)> ^x = 123
123

_(アンダーバー)

使われない変数の頭につける。これを付けないとwarningが出る。

例)
  def index(conn, _params) do
    posts = Blog.list_posts()
    render(conn, "index.html", posts: posts)
  end

↑を変更し、アンダーバーを消してみると

例)
  def index(conn, params) do
    posts = Blog.list_posts()
    render(conn, "index.html", posts: posts)
  end

warningが発生する

warning: variable "params" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/my_app_web/controllers/post_controller.ex:7: MyAppWeb.PostController.index/2

以上

6
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?