官术网_书友最值得收藏!

  • Perl 6 Deep Dive
  • Andrew Shitov
  • 314字
  • 2021-07-03 00:05:48

Hashes

In the array, indexes are integer numbers starting from zero. Hashes are another structural type of data in Perl 6 that can be treated as arrays whose indices are strings.

Hashes use the % sigil. Other names for hashes from various programming languages are associative arrays, dictionaries or dicts, and maps. Hashes are very useful when you need to keep a few values together. For example, take a look at the following code snippet:

my %city = 
name => 'London',
country => 'gb',
latitude => 51.52,
longitude => 0,
area => 1577,
inhabitants => 8_700_000;

Elements of the hash are pairs, which are in turn two things—the key and the value. In this example, keys of the %city hash are name, country, and so on, and their values are London and gb.

The layout of the code in such assignments may be changed to align the keys and the values, as you can see here:

my %city = 
name => 'London',
country => 'gb',
latitude => 51.52,
longitude => 0,
area => 1577,
inhabitants => 8_700_000;

In the assignment, pairs of the hash can be surrounded in parentheses, as shown here:

my %city = (
name => 'London',
country => 'gb',
latitude => 51.52,
longitude => 0,
area => 1577,
inhabitants => 8_700_000);

When a hash is printed (say %city), it is displayed in a pair of curly braces, as shown in the following lines of code:

{area => 1577, country => gb, inhabitants => 8700000,    
latitude => 51.52, longitude => 0, name => London}

If there are keys with identical names, then the last one wins. Consider the following hash creation:

my %city = 
name => 'London',
name => 'Paris';
say %city;

This program prints {name => Paris} only.

The information in this section is enough to continue on our way to learning types in Perl 6.

主站蜘蛛池模板: 山西省| 锦屏县| 乌鲁木齐市| 内黄县| 榆社县| 蓬安县| 讷河市| 汕尾市| 中卫市| 怀远县| 华宁县| 永春县| 洛宁县| 思南县| 翼城县| 桂林市| 环江| 溧阳市| 东明县| 腾冲县| 景泰县| 兴城市| 通江县| 重庆市| 宜春市| 滦平县| 伊宁县| 江北区| 多伦县| 中西区| 自治县| 嵊州市| 仪征市| 中卫市| 樟树市| 邢台市| 湛江市| 托里县| 廉江市| 博野县| 余江县|