请用D语言实现php的array_key_first和array_key_last函数给出d语言能够实现该函数的各种方式并给出完整代码
D语言实现array_key_first和array_key_last函数的方式有很多,以下是其中的几种:
- 使用std.algorithm中的front和back函数来获取map中第一个和最后一个键值对的键名:
import std.algorithm;
import std.stdio;
import std.container;
string[array] map = ["key1": "value1", "key2": "value2", "key3": "value3"];
string array_key_first(string[array] map) {
return map.front[0];
}
string array_key_last(string[array] map) {
return map.back[0];
}
void main() {
writeln(array_key_first(map));
writeln(array_key_last(map));
}
- 使用std.range中的front和back函数,将map转换为range类型后再获取第一个和最后一个键值对的键名:
import std.algorithm;
import std.stdio;
import std.container;
import std.range;
string[array] map = ["key1": "value1", "key2": "value2", "key3": "value3"];
string array_key_first(string[array] map) {
return map.range.front[0];
}
string array_key_last(string[array] map) {
return map.range.back[0];
}
void main() {
writeln(array_key_first(map));
writeln(array_key_last(map));
}
- 使用std.container中的KeyRange和ValueRange,将map的键名和值分别转换为range类型后再获取第一个和最后一个键名:
import std.algorithm;
import std.stdio;
import std.container;
string[array] map = ["key1": "value1", "key2": "value2", "key3": "value3"];
string array_key_first(string[array] map) {
return map.keys.front;
}
string array_key_last(string[array] map) {
return map.keys.back;
}
void main() {
writeln(array_key_first(map));
writeln(array_key_last(map));
}
完整代码:
import std.algorithm;
import std.stdio;
import std.container;
import std.range;
string[array] map = ["key1": "value1", "key2": "value2", "key3": "value3"];
//方式1
string array_key_first(string[array] map) {
return map.front[0];
}
string array_key_last(string[array] map) {
return map.back[0];
}
//方式2
string array_key_first(string[array] map) {
return map.range.front[0];
}
string array_key_last(string[array] map) {
return map.range.back[0];
}
//方式3
string array_key_first(string[array] map) {
return map.keys.front;
}
string array_key_last(string[array] map) {
return map.keys.back;
}
void main() {
writeln(array_key_first(map));
writeln(array_key_last(map));
}
``
原文地址: https://www.cveoy.top/t/topic/fvB2 著作权归作者所有。请勿转载和采集!