質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Julia

Juliaとは、科学技術計算に特化した、高水準・高性能な動的プログラミング言語です。オープンソースとして公表されており、書き易く動きが早いことが特徴です。

Q&A

解決済

2回答

6079閲覧

Juliaでコードの行途中で改行したい

haomoni

総合スコア6

Julia

Juliaとは、科学技術計算に特化した、高水準・高性能な動的プログラミング言語です。オープンソースとして公表されており、書き易く動きが早いことが特徴です。

0グッド

0クリップ

投稿2021/10/29 07:43

前提・実現したいこと

Julia1.6.3のコードを書いていて、一行が長くなってしまったので見やすくするために途中で改行を入れたいです。
そういう仕様は用意されていますか?

pythonだとバックスラッシュでできる感じのやつです。

(自分でググっても"\nで改行"的な話ばかりヒットして上手く探せませんでした。)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

juliaの場合は明確に複数行に分けるpythonbashでいうところの\みたいなものはありません。

ただし,pythonと同じように複数行で記載できる方法があります。

一番汎用的なのは括弧で囲む方法です。\等が不要で複数行に分けられます。

julia

1julia> a = (1 + 2 2 + 3 + 4 3 + 5) 415

関数の引数も基本複数行に分けて書くことが可能です。

julia

1julia> using DataFrames 2 3julia> DataFrame( 4 [[1,2], 5 [0,0]], 6 [:a, :b]) 72×2 DataFrame 8 Row │ a b 9 │ Int64 Int64 10─────┼────────────── 11 11 0 12 22 0

演算子が行の最後なら次の行にも続けられるようです。

julia

1julia> a = "この文字" * 2 "はつながる" * 3 "のです" 4"この文字はつながるのです"

ベクトル型の表記のようなものは途中で改行可能です。

julia

1julia> a = [1, 2, 3, 2 4, 5, 6, 3 7, 8, 9] 49-element Vector{Int64}: 5 1 6 2 7 3 8 4 9 5 10 6 11 7 12 8 13 9

なお行列型(2次元)の一列を複数行に分けて記載するのは難しいです。
これは行の区切りに改行が使えるためです。
ですので,長い列の場合は

  • 複数の変数に分けて最後に合成する
  • 行ベクトルで記載し転置する

ぐらいかと思います。

投稿2021/10/29 12:00

ujimushi_sradjp

総合スコア2152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haomoni

2021/10/29 12:26

ありがとうございます。
guest

0

2018年のJulia Discourseで同じ質問が見つかりました:
https://discourse.julialang.org/t/single-string-on-multiple-lines-without-n/18099/5

また、Julia 1.7以降では行末の\が使えるようになっていました。

julia

1julia> "hoge \ 2 fuga" 3ERROR: syntax: invalid escape sequence 4Stacktrace: 5 [1] top-level scope 6 @ none:1 7 8julia> versioninfo() 9Julia Version 1.6.6 10Commit b8708f954a (2022-03-28 07:17 UTC) 11Platform Info: 12 OS: Linux (x86_64-pc-linux-gnu) 13 CPU: AMD Ryzen 7 2700X Eight-Core Processor 14 WORD_SIZE: 64 15 LIBM: libopenlibm 16 LLVM: libLLVM-11.0.1 (ORCJIT, znver1)

julia

1julia> "hoge \ 2 fuga" 3"hoge fuga" 4 5julia> versioninfo() 6Julia Version 1.7.3 7Commit 742b9abb4d (2022-05-06 12:58 UTC) 8Platform Info: 9 OS: Linux (x86_64-pc-linux-gnu) 10 CPU: AMD Ryzen 7 2700X Eight-Core Processor 11 WORD_SIZE: 64 12 LIBM: libopenlibm 13 LLVM: libLLVM-12.0.1 (ORCJIT, znver1)

投稿2022/07/20 14:16

hyrodium

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ujimushi_sradjp

2022/07/21 13:56

知らなかったので非常に参考になる回答だと思いましたが, 元の質問はpythonの`\`のようにプログラムの途中で任意に改行をする方法 例えば a = 5 + 3 * 2 / 5 \ + 3 * 2 というpythonで可能な記述方法がJuliaでもあるか? 尋ねていて,回答者が参照しているJuliaコミュニティの質問は 「一行の文字列を複数行に分割して記述する方法がないか?」 というもので,厳密には同じ質問ではないと思います。
hyrodium

2022/07/31 15:09

なるほど、元の質問を私がちゃんと理解できていなかったようです。コメントありがとうございます! >例えば >a = 5 + 3 * 2 / 5 \ >+ 3 * 2 >というpythonで可能な記述方法がJuliaでもあるか? については、以前の回答のように()で囲むのがベストだと思います。Juliaでは\は割り算になるのでPythonのように改行には使えないですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問