<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Null安全性</title>
	<atom:link href="https://techgrowup.net/tag/null%e5%ae%89%e5%85%a8%e6%80%a7/feed/" rel="self" type="application/rss+xml" />
	<link>https://techgrowup.net</link>
	<description>エンジニアを強くする</description>
	<lastBuildDate>Thu, 29 Aug 2024 13:24:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://techgrowup.net/wp-content/uploads/2021/05/hp-icon-150x150.png</url>
	<title>Null安全性</title>
	<link>https://techgrowup.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Flutter開発入門2 Dartの変数について</title>
		<link>https://techgrowup.net/flutter-dart-variable/</link>
					<comments>https://techgrowup.net/flutter-dart-variable/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Sat, 24 Aug 2024 02:23:09 +0000</pubDate>
				<category><![CDATA[Flutter]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Dart]]></category>
		<category><![CDATA[Null安全性]]></category>
		<category><![CDATA[変数]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=1615</guid>

					<description><![CDATA[はじめに 　本記事ではDartの変数についてまとめます。Flutter開発入門の前回の記事は以下です。 Dart変数の基本 　Dartでは、変数は値への参照を保持します。例えば、var name = &#8216;Bob [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">　本記事ではDartの変数についてまとめます。Flutter開発入門の前回の記事は以下です。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-techgrowup wp-block-embed-techgrowup"><div class="wp-block-embed__wrapper">

<a target="_self" href="https://techgrowup.net/2024/08/22/flutter-dartpad" title="Flutter開発入門1 DartPadの使い方" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://techgrowup.net/wp-content/uploads/2024/08/flutter-dartpad.webp" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Flutter開発入門1 DartPadの使い方</div><div class="blogcard-snippet external-blogcard-snippet">DartPadは、Webブラウザ上でDartとFlutterのプログラムを実行できる便利なオンラインツールです。本記事では、DartPadの機能、使い方、実際の活用法を詳しく解説し、初心者からプロフェッショナルまで幅広い層に役立つ情報を提供...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://techgrowup.net/flutter-dartpad/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">techgrowup.net</div></div></div></div></a>
</div></figure>



<h2 class="wp-block-heading">Dart変数の基本</h2>



<p class="wp-block-paragraph">　Dartでは、変数は値への参照を保持します。例えば、var name = &#8216;Bob&#8217;;というコードでは、nameという変数が文字列&#8217;Bob&#8217;を指しています。また、Dartは変数の型を自動的に推論しますが、明示的に型を指定することも可能です。<br>　明示的に変数を宣言する場合には以下のような形で記述します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="String name = 'Bob';  // String型として明示的に宣言" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #4EC9B0">String</span><span style="color: #D4D4D4"> name = </span><span style="color: #CE9178">&#39;Bob&#39;</span><span style="color: #D4D4D4">;  </span><span style="color: #6A9955">// String型として明示的に宣言</span></span></code></pre></div>



<h2 class="wp-block-heading">Null安全性</h2>



<p class="wp-block-paragraph">　Null安全性（Null Safety）とは、プログラミング言語において、<code>null</code>値が原因で発生するエラーを未然に防ぐための仕組みです。Dart言語では、Null安全性を導入することで、変数が<code>null</code>値を持つ可能性がある場合、その変数に対して無効な操作を行わないようにコンパイル時にチェックを行います。</p>



<p class="wp-block-paragraph">　Dartは「Null安全性」をサポートしており、これによりNull参照エラーを防ぎます。Null参照エラーとは、<code>null</code>となっている変数に対してプロパティやメソッドを呼び出そうとしたときに発生するエラーです。</p>



<p class="wp-block-paragraph">　NullableとNon-nullableを定義するには以下のように記述します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="String? name;  // Nullable型
String name;   // Non-nullable型" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #4EC9B0">String</span><span style="color: #D4D4D4">? name;  </span><span style="color: #6A9955">// Nullable型</span></span>
<span class="line"><span style="color: #4EC9B0">String</span><span style="color: #D4D4D4"> name;   </span><span style="color: #6A9955">// Non-nullable型</span></span></code></pre></div>



<h2 class="wp-block-heading">変数のデフォルト値</h2>



<p class="wp-block-paragraph">　Nullable型の未初期化変数はデフォルトで<code>null</code>に設定されます。Non-nullable型の場合、明示的に初期値を設定しないとコンパイルエラーになります。<br>　例えばNullableの値をprintしてみると「null」という表示がされますが、Non-nullableの場合は以下のようなエラーがコンパイル時に表示されます。</p>



<p class="wp-block-paragraph">サンプルコード</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="  String name2; // Non-nullable型
  print(name2)" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">  </span><span style="color: #4EC9B0">String</span><span style="color: #D4D4D4"> name2; </span><span style="color: #6A9955">// Non-nullable型</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(name2)</span></span></code></pre></div>



<p class="wp-block-paragraph">エラー</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="compileDDC
main.dart:7:9: Error: Non-nullable variable 'name2' must be assigned before it can be used.
  print(name2);" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">compileDDC</span></span>
<span class="line"><span style="color: #DCDCAA">main.dart:7:9:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Error:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Non-nullable</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">variable</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&#39;name2&#39;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">must</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">be</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">assigned</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">before</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">it</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">can</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">be</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">used.</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(name2);</span></span></code></pre></div>



<h2 class="wp-block-heading">遅延初期化</h2>



<p class="wp-block-paragraph">　遅延初期化（Late Initialization）とは、変数の宣言時に初期化せず、必要なタイミングで初期化を行う手法です。Dartでは、lateキーワードを使用して遅延初期化を行います。これにより、通常のNon-nullable変数として扱いながらも、宣言後に初期化を遅らせることができます。以下使い方の例になります。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="late String description;

void main() {
  // ここではまだdescriptionは初期化されていないので使用できない
  description = 'This is a description.';
  print(description);  // 'This is a description.'が出力される
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">late</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">String</span><span style="color: #D4D4D4"> description;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">void</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">main</span><span style="color: #D4D4D4">() {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// ここではまだdescriptionは初期化されていないので使用できない</span></span>
<span class="line"><span style="color: #D4D4D4">  description = </span><span style="color: #CE9178">&#39;This is a description.&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(description);  </span><span style="color: #6A9955">// &#39;This is a description.&#39;が出力される</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<p class="wp-block-paragraph">　このコードでは、<code>description</code>という変数を<code>late</code>として宣言しています。この変数は、<code>main</code>関数内で初めて値が設定され、<code>print</code>メソッドによって出力されます。</p>



<h2 class="wp-block-heading">定数変数: <code>final</code>と<code>const</code></h2>



<p class="wp-block-paragraph">　final変数は一度しか設定できない変数であり、const変数はコンパイル時に定数であることが保証されます。finalやconstを使用することで、変更不可能な値を扱うことができます。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="final String nickname = 'Bobby';
const int bar = 1000000;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">final</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">String</span><span style="color: #D4D4D4"> nickname = </span><span style="color: #CE9178">&#39;Bobby&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">int</span><span style="color: #D4D4D4"> bar = </span><span style="color: #B5CEA8">1000000</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p class="wp-block-paragraph">　finalとconstの使い分け<br>※イミュータブル性（Immutability）とは、変数が一度作成された後に、その状態や内容を変更できない性質を指します。</p>



<ul class="wp-block-list">
<li>値が実行時に決まるかコンパイル時に決まるか
<ul class="wp-block-list">
<li>値が実行時に決定される場合、例えばユーザーからの入力や現在の日付、APIからのデータなどの場合は、finalを使用します。</li>



<li>値がコンパイル時に確定している場合、つまり不変であることが保証されるリテラル値や数式の場合は、constを使用します。</li>
</ul>
</li>



<li>オブジェクトのイミュータブル性
<ul class="wp-block-list">
<li>constを使用すると、そのオブジェクトは完全にイミュータブルとなり、その内容も変更できません。これは、データの完全な安全性が求められる場合に有効です。</li>



<li>finalを使用した場合、オブジェクトそのものは変更できませんが、そのフィールドや要素は変更可能です。</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">　この記事では、Dart言語における変数の基本的な使い方から、Null安全性、デフォルト値、遅延初期化、そして定数変数の使い分けまでを詳細に解説しました。Dartの変数は、プログラムの信頼性と柔軟性を高めるために多くの機能を提供しています。特に、Null安全性はプログラムのエラーを未然に防ぎ、finalとconstを適切に使い分けることで、イミュータブル性を確保しつつ効率的なコードが書けます。これらの概念を理解し、正しく活用することで、Dartでの開発がより安全で効果的になります。</p>



<p class="wp-block-paragraph">　Flutter開発入門の次の記事はこちらです。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-techgrowup wp-block-embed-techgrowup"><div class="wp-block-embed__wrapper">

<a target="_self" href="https://techgrowup.net/2024/08/26/flutter-data-type" title="Flutter開発入門3 Dartの組み込み型" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://techgrowup.net/wp-content/uploads/2024/08/flutter-data-type.webp" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Flutter開発入門3 Dartの組み込み型</div><div class="blogcard-snippet external-blogcard-snippet">Dartの組み込み型について解説します。変数、リテラル、Null安全機能など、効率的な開発に欠かせない知識を学びましょう</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://techgrowup.net/flutter-data-type/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">techgrowup.net</div></div></div></div></a>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/flutter-dart-variable/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: techgrowup.net @ 2026-07-08 23:09:06 by W3 Total Cache
-->