ari23の研究ノート

メーカ勤務エンジニアの技術ブログです

Julia超入門|回答 点pの移動

こちらの問題の回答です🐜

回答例

スクリプト例と出力結果です。


<スクリプト例> pointpmove.jl

mutable struct Point
    x::Float64
    y::Float64
end

function movex!(p::Point, shift::Float64)
    p.x = p.x + shift
end

function movey!(p::Point, shift::Float64)
    p.y = p.y + shift
end

function main()
    # xy座標点P
    p = Point(2.0, 3.0)

    # 初期位置確認
    println(p)

    # 移動
    movex!(p, 1.5)
    movey!(p, -0.5)

    # 確認
    println(p)
end

if abspath(PROGRAM_FILE) == @__FILE__
    main()
end


<出力結果>

Point(2.0, 3.0)
Point(3.5, 2.5)

実は、複合体のフィールドはimmutableで値を変更できません。したがって、上記では定義時にmutableを付けて、変更できるようにしています(詳細はこちら)。

また、movex!movey!の末尾に!は、引数の一部を変更することを示します。

回答例は以上です。

続きはこちら