みやたくワークスの徒然ブログ

みやたくワークスの徒然ブログ

PR

×

Profile

たくぷれっさ2号機

たくぷれっさ2号機

Calendar

Archives

2026.05
2026.04
2026.03
2026.02
2026.01
2020.03.25
XML
カテゴリ: swift
こんなコード書いたらコンパイル時にCPUが悲鳴をあげたというお話。

個人的に好みではないけど、swift は型推論により変数型を指定しなくても、コンパイラ?側で代入された値によって自動的に判別してくれる。

そこで厄介なのが、代入を行う際に左辺値と右辺値の型を全て統一する必要があること。
要は、左辺値がDouble型なら、右辺値も、計算式の定数および変数も全部含めて全てDouble型に統一しないといけない。

なので、型ごとに型変換する関数があり、それを使って統一していく。

Double( 変数 or 定数 )

とか

Int( 変数 or 定数 )

的な感じ。



(エラーの詳細は忘れました(゚ω゚))

---

rect. origin . x = x_position +  ( 64.0 * CGFloat (col)) + ( 10.0 * CGFloat (col))

---

↓のようなコードにすることで解決

---

rect. origin . x = x_position + CGFloat ( 64.0 * CGFloat (col)) + CGFloat ( 10.0 * CGFloat (col))

---

CGFloat型はその名の通りFloatなので定数値を 64.0 と書けばOKかな?って思ってたけど、ダメだった。

Macが気の毒になるくらいコンパイル頑張ってたので、今後気をつけます。


ちなみに 定数値を使う場合、 64 は Int型、64.0 はDouble型として判断されます。
Floatを使いたい場合は、明示的に型を定義する必要があります。

とここまで書いて、Double型(10.0)とCGFloat型の掛け算したからエラーを吐いたと気づく




[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

あつまれ どうぶつの森
(2020/3/24時点)

楽天で購入







お気に入りの記事を「いいね!」で応援しよう

Last updated  2020.03.25 22:46:29
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: