【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

Error: Function finished without @return.の原因と対処法

本記事では、SCSS→CSSに変換(コンパイル)する時に「Error: Function finished without @return.」のエラーが出力された時の原因と対処法について解説しています。

HTML/CSSの学習におすすめ書籍
1冊ですべて身につくHTML&CSSとWebデザイン入門講座
総合評価
( 5 )
メリット
  • HTMLとCSSの基本が体系的に学べる
  • Webデザインの基本が学べる
  • 1つのWebサイトを作りながら学べる
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

原因と対処法

このエラーが出る原因は、関数(@function)に@returnを設定していないことです。

例えば、以下の関数は同様のエラーを出力します。

@function double($val) {
  $val: $val * 2;
}

.sample {
  font-size: double(10px);
}

JavaScriptなどのプログラミング言語では、必ずreturnで戻り値を返さなければいけないというルールはありません。戻り値を返さず処理だけを実行する関数を書くことも出来ます。

しかし、SCSSでは@functionと@returnは必ずセットで使用されることがルールとして定められているため、@returnを書かなければ間違いの記述でエラーが出力されます。

先ほど紹介したコードを正しい記述に書き換えると以下のようになります。

@function double($val) {
  $val: $val * 2;
  @return $val;
}

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次