対話型環境で遊ぶ1[連想配列]

連想配列で軽く遊ぶ

連想配列のキーについて

python3.6.5
php5.6.37(ry
ruby 2.5.1(ry
js chrome 68.0(ry

aki@Desctop:/mnt/c/Users/win$ python --version
Python 3.6.5

aki@Desctop:/mnt/c/Users/win$ php -v
PHP 5.6.37-1+ubuntu18.04.1+deb.sury.org+1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

aki@Desctop:/mnt/c/Users/win$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]

aki@Desctop:/mnt/c/Users/win$ python
Python 3.6.5 (default, Jul 26 2018, 03:51:00)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> dic = {a: 22, 22: 'a'}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> dic = {'a': 22, 22: 'a'}
# pythonの連想配列(dict)は、キーはデータが反映される
>>> a = 'aaa'
>>> {a: 22}
{'aaa': 22}
>>> exit()

aki@Desctop:/mnt/c/Users/win$ php -a
Interactive mode enabled
php > $arr = array("a"=>22, 22=>"a");
php > var_dump($arr);
array(2) {
  ["a"]=>
  int(22)
  [22]=>
  string(1) "a"
}
// phpも同じく、連想配列(array)はキーのデータが反映される
php > $a = "aaa";
php > $arr = array($a=>22, 22=>"a");
php > var_dump($arr);
array(2) {
  ["aaa"]=>
  int(22)
  [22]=>
  string(1) "a"
}
// phpのインタラクティブモードは絶対セミコロンつけさせてくるから面倒くさい;;

aki@Desctop:/mnt/c/Users/win$ irb
irb(main):001:0> ha = {"a" => 22, 22 => "a"}
=> {"a"=>22, 22=>"a"}
irb(main):002:0> a = "aaa"
=> "aaa"
irb(main):003:0> ha = {a => 22, 22 => "a"}
=> {"aaa"=>22, 22=>"a"}
# rubyも、連想配列(Hash)はキーのデータが反映される
irb(main):004:0> exit;

// jsの連想配列(Dictionary)は、キーはそのままキーになる
{a: 22, 22: "a"}
{22: "a", a: 22}

jsをよく触っていたからか、連想配列のキーは文字列とか意識していなかったけど、python, php, rubyはキーにデータを入れれるし、言語による違い全然覚えてないなーって感じでした

おまけのpython

>>> def xx(x):
...  return x*x
...
>>> xx(2)
4
>>> aa = {xx: 2}
>>> aa
{<function xx at 0x7f3bcde06a60>: 2}
>>> aa[xx]
2

できるけど何なん?って感じ

この記事が気に入ったらサポートをしてみませんか?