[Elixir] 시스템.

11186 단어 Elixir

소개


  • 2020/10/17(토)에 행해진 【온라인】kokura.ex#14:Elixir 모쿠모쿠회~입문도 있어(9:30~)축 1주년!에 참가해 썼습니다

  • @im_miolab 씨, 감사합니다!
  • 2019/01/25(금)에 행해진 kokura.ex#1:오구라 Elixir 커뮤니티 발족【세션/LT와 간친회】에 참가하고 나서 Elixir를 만났습니다
  • 당일은 brew install elixir에서 설치한 Elixir에서 IEx에서 Hello, world만 한 경험뿐이었습니다만, 과감하게 LT를 한 추억이 있습니다

  • 표제의 건으로 몇 번이나 있나? 가 되었기 때문에 좋은 가감 같은 일로 막히지 않도록 기사로 둡니다

  • 설치


  • 먼저 Elixir을 설치합시다
  • 앞쪽 된장입니다만, 설치 등 참고로 해 주세요

  • mix new


  • 적절한 프로젝트 만들기
  • $ mix new hello_env
    * creating README.md
    * creating .formatter.exs
    * creating .gitignore
    * creating mix.exs
    * creating lib
    * creating lib/hello_env.ex
    * creating test
    * creating test/test_helper.exs
    * creating test/hello_env_test.exs
    
    Your Mix project was created successfully.
    You can use "mix" to compile it, test it, and more:
    
        cd hello_env
        mix test
    
    Run "mix help" for more commands.
    

    System.get_env/2에서 환경 변수를 읽고 Module attribute에 저장하는 모듈을 만듭니다.



    lib/hello_env.ex
    defmodule HelloEnv do
      @greet System.get_env("AWESOME_ENVIRONMENT_VARIABLE")
    
      def greet do
        @greet
      end
    end
    
    

    환경 변수를 설정합니다.


  • 나는 Apple이 말한대로 zsh를 사용하고 있습니다
  • 환경에 맞는 좋은 느낌의 파일에 써주세요 (~/.profile이나 ~/.bash_profile 등)

  • .zshenv
    export AWESOME_ENVIRONMENT_VARIABLE="I was born to love Elixir."
    

    실행


    $ source ~/.zshenv
    $ cd hello_env
    $ iex -S mix      
    Erlang/OTP 23 [erts-11.0.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Compiling 1 file (.ex)
    Generated hello_env app
    Interactive Elixir (1.10.4) - press Ctrl+C to exit (type h() ENTER for help)
    iex(1)> HelloEnv.greet
    "I was born to love Elixir."
    
  • 좋아요

  • AWESOME_ENVIRONMENT_VARIABLE을 변경하고 싶습니다.


  • IEx 종료
  • iex(2)> System.halt
    
  • 환경 변수 변경

  • .zshenv
    export AWESOME_ENVIRONMENT_VARIABLE="I was born to love Elixir. We are the Alchemists, my friends."
    
    $ source ~/.zshenv
    $ iex -S mix      
    Erlang/OTP 23 [erts-11.0.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Interactive Elixir (1.10.4) - press Ctrl+C to exit (type h() ENTER for help)
    iex(1)>  HelloEnv.greet  
    "I was born to love Elixir."
    
  • 어라! ? 변경 내용이 반영되지 않았습니다.

  • 해결법①


    iex(2)> recompile force: true
    Compiling 1 file (.ex)
    Generated hello_env app
    :ok
    iex(3)> HelloEnv.greet      
    "I was born to love Elixir. We are the Alchemists, my friends.
    

    해결법②


    $ source ~/.zshenv
    $ mix clean
    $ iex -S mix      
    Erlang/OTP 23 [erts-11.0.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Compiling 1 file (.ex)
    Generated hello_env app
    Interactive Elixir (1.10.4) - press Ctrl+C to exit (type h() ENTER for help)
    iex(1)> HelloEnv.greet
    "I was born to love Elixir. We are the Alchemists, my friends."
    

    해결법③(다사이지만 언제나 내가 하고 있던 것)


  • lib/hello_env.ex가 컴파일 오류를 일으키도록 이상한 작업을 수행하십시오
  • iex -S mix
    Erlang/OTP 23 [erts-11.0.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Compiling 1 file (.ex)
    
    == Compilation error in file lib/hello_env.ex ==
    ** (SyntaxError) lib/hello_env.ex:24: unexpected token: end
        (elixir 1.10.4) lib/kernel/parallel_compiler.ex:304: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
    
  • 컴파일이 통과하도록 허용
  • iex -S mix
    Erlang/OTP 23 [erts-11.0.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Compiling 1 file (.ex)
    Interactive Elixir (1.10.4) - press Ctrl+C to exit (type h() ENTER for help)
    iex(1)> HelloEnv.greet
    "I was born to love Elixir. We are the Alchemists, my friends."
    

    Wrapping Up


  • Enjoy Elixir !!!
  • 좋은 웹페이지 즐겨찾기