Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100556
  • 博文数量: 20
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 455
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-06 11:04
文章分类

全部博文(20)

文章存档

2011年(1)

2010年(14)

2009年(4)

2008年(1)

我的朋友

分类:

2010-07-28 15:34:20

> 第2章 スカラー変数
  第2章 スカラー変数



2-1. スカラー変数とは

  • Perlには、スカラースカラー配列スカラー連想配列という3つの基本的なデータ型があります。
  • この中で、スカラーデータとは、数値や文字列のような単純なデータのことをいいます。
  • また、プログラミングに必須の要素として、変数という概念があります。変数とは、さまざまな値を一時的に記憶しておくために使われる「値の入れ物」のことです。
  • Perlでは、各データ型に対応した形で、それぞれスカラー変数配列連想配列の3つの変数が存在し、スカラー変数とは、その中で最も基本となるもので、数値や文字列を格納することができます。
  • スカラー変数の名前は、$ (ダラー) + 英字1文字から始まり、それ以降は数字、英字およびアンダースコア ( _ ) を用いることができます。また大文字と小文字が区別されますので、たとえば $a$A は別物として扱われます。

    変数名に使用できる文字
    $abc123  変数名として使用可能。
    $123abc × 数字で始まることはできない。
    $abc_123  アンダースコアは使用可能。
    $abc-123 × ハイフンは使用することはできない。




2-2. 数値と文字列
  • スカラー変数には、数値や文字列を代入することができます。
  • たとえば、 $x = 1; とすると、$x という変数に数値の 1 が代入されます。

    構文例 意味
    $x = 1; $x に 1 を代入 (整数)
    $y = -10; $y に -10 を代入 (整数)
    $z = 3.1415; $z に 3.1415 を代入 (浮動少数点数)


  • たとえば、 $x = 'hello'; とすると、$x という変数に文字列の hello が代入されます。

    構文例 意味
    $x = 'hello'; $x に hello を代入
    $y = "ケントウェブ"; $y に ケントウェブ を代入


  • また、文字列の代入のところでも分かるように、Perlでは文字列を扱う場合には、必ずシングルクォート ( ' ) かまたはダブルクォート ( " ) で囲む必要があります。シングルクォートで囲まれた文字列を、シングルクォート文字列、ダブルクォートで囲まれた文字列をダブルクォート文字列といいます。
  • シングルクォート文字列またはダブルクォート文字列を扱う場合の注意点としては、次のようなことがあります。

    • シングルクォートの中でシングルクォート文字を使用する場合、または、ダブルクォートの中でダブルクォート文字を使う場合には、エスケープ記号 ( \ ) でエスケープしなければなりません。


    • $room = 'Kent's Room'; × シングルクォートの中でそのままシングルクォート文字を使用できない。
      $room = 'Kent\'s Room';  シングルクォート文字をエスケープすることで使用可。
      $room = "Kent's Room";  ダブルクォートの中でシングルクォート文字はそのまま使用可。
      $talk = "I said "Wow"."; × ダブルクォートの中でそのままダブルクォート文字を使用できない。
      $talk = "I said \"Wow\".";  ダブルクォート文字をエスケープすることで使用可。
      $talk = 'I said "Wow".';  シングルクォートの中でダブルクォート文字はそのまま使用可。


    • スカラー変数を囲む場合、ダブルクォート内では変数展開されますが、シングルクォート内では変数展開されません。


    • $name = "KENT";
      print "my name is $name", "
      \n";
      print 'my name is $name', "
      \n";


      <出力結果>
      my name is KENT
      my name is $name




2-3. スカラー演算子
  • Perlは数学言語でもあり、次のような演算子が用意されています。

  • 算術演算子

    これは数値に対して、ある種の数学関数を実行します。

    構文例 名前 内容
    $x + $y 加算 $x と $y の和
    $x - $y 減算 $x から $y を引いた値
    $x * $y 乗算 $x と $y の積
    $x / $y 剰算 $x を $y で割った値
    $x % $y 剰余 $x を $y で割った余り
    $x ** $y べき算 $x を $y乗した値

    $a = 1;
    $b = 2;
    print $a + $b;


    <出力結果>
    3


  • 文字列演算子

    これは文字列に対して、連結(加算)や繰り返し(乗算)を実行します。

    $a = "ABC";
    $b = "DEF";
    print $a . $b;


    <出力結果>
    ABCDEF

    $c = "ABC";
    $d = 3;
    print $c x $d;


    <出力結果>
    ABCABCABC


    これは数値に対しても同じです。数値の場合には、これを単に文字列と解釈して処理します。

    $a = 123;
    $b = 456;
    print $a . $b;


    <出力結果>
    123456

    $c = 123;
    $d = 3;
    print $c x $d;


    <出力結果>
    123123123


  • 代入演算子

    スカラー変数に値を代入します。この場合、= は「等しい」ではなく、「代入する」という意味であることを理解しておきましょう。

    $a = 1;
    $b = $a + 2;
    print $b;


    <出力結果>
    3


    文字列の場合も同様に = を使用します。

    $a = "KENT";
    $b = "WEB";
    $c = "$a $b";
    print $c;


    <出力結果>
    KENT WEB


  • 二項代入演算子

    代入演算子で、たとえば、$a = $a + 2; のように両側に同じ変数が現れる場合、これを簡便化して記述するための演算子が用意されています。

    元の式 二項代入演算子
    $a = $a + $b $a += $b
    $a = $a - $b $a -= $b
    $a = $a * $b $a *= $b
    $a = $a / $b $a /= $b
    $a = $a . $b $a .= $b
    $a = $a x $b $a x= $b

    $a = 1;
    $a += 2;
    # これは $a = $a + 2; と同じ
    print $a;

    <出力結果>
    3


  • オートインクリメント演算子とオートデクリメント演算子

    二項代入演算子をさらに簡便化したもので、変数に1を加減することに特定した演算子です。

    構文例 名前 意味
    ++$a
    $a++
    オートインクリメント $a に1を加える
    --$a
    $a--
    オートデクリメント $a から1を引く

    $a = 1;
    $a++;
    # これは $a += 1; と同じ
    print $a;

    <出力結果>
    2


  • 論理演算子

    入れ子になった条件式を使わずに、いくつかの基準に基づいて動作を決めることができます。全体の値を求めるとき、左辺の評価だけで、右辺の評価を省くことのできる場合があります。

    構文例 名前 結果
    $a && $b
    $a and $b
    論理積 $a が偽なら$a、そうでなければ $b
    $a || $b
    $a or $b
    論理和 $a が真なら$a、そうでなければ $b
    ! $a
    not $a
    否定 $a が真でなければ真


  • 比較演算子

    2つのスカラー値(数値または文字列)を比較し、判断するための演算子です。

    意味 数値 文字列 意味
    より小さい $a < $b $a lt $b $a が $b より小さければ真
    より大きい $a > $b $a gt $b $a が $b より大きければ真
    より小さいか等しい $a <= $b $a le $b $a が $b より小さいか等しければ真
    より大きいか等しい $a >= $b $a ge $b $a が $b より大きいか等しければ真
    等しい $a == $b $a eq $b $a と $b が等しければ真
    等しくない $a != $b $a ne $b $a と $b が等しくなければ真
    比較 $a <=> $b $a cmp $b $a と $b が等しければ 0
    $a が大きければ +1
    $b が大さければ -1

阅读(528) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~