や、言語関係など覚えたいもの、覚えるべきものはたくさんある一方で、注目が集まっているから、やってみたい。ということでプログラミング言語としてのを学んでいく。
2. Juliaの言語機能
2.9 C言語の呼び出し
で書かれた既存のソフトウェア資産を用いたい場合やでは実現が難しいレベルのチューニングが施されたソフトウェアを使いたい場合を考える。
2.9.1 Call構文
にはの関数を呼び出すのに使うという特別な構文が用意されている。
# ccall ccall(Cの関数, 戻り値の型, 引数の型,引数1,引数2,...) # C言語のsin関数を呼び出す # 標準ライブラリ以外(zlib:ライブラリ名はlibz)の関数compressを呼び出すには、(:compress,"libz")と書く ccall(:sin, Cdouble, (Cdouble), 1.0) # Cの標準ライブラリにあるものは関数名のみで呼び出す
2.9.2 ポインタの受け渡し
の関数には引数や戻り値にポインタを使うものがある。
たとえば * *と宣言されている。この関数は引数も戻り値も型へのポインタである。にはこれに相当するがあり、また戻り値のポインタには_関数を用いて変換できる。
ccall(:getenv, Cstring, (Cstring,), "HOME") # 環境変数HOMEを取得する unsafe_string(ans)
2.9.3 構造体の受け渡し
ので定義された構造体とのやで定義された複合型のメモリレイアウトには互換性がある。
2.10 外部プログラムの呼び出し
には既にあるプログラムをから呼び出して実行する機能がある。
で外部プログラムを実行するには、バッククオートを用いるたとえばコマンドならば``で呼び出し、関数で実行させる。
2.11 パッケージ
パッケージは、ソフトウェアを再利用可能な形で配布する単位である。
には標準でパッケージ管理ツールが同封されている。パッケージ管理には、ので]と入力することで行う。
と入力すると、現在インストールされている外部パッケージの状態を表示する。コミュニティが公開しているパッケージをインストールするには、コマンドを用いる。