2020年12月

December Headline: Python on its way to become TIOBE's language of the year for the fourth time

排名编程语言Ratings同比上月
1C16.48%+0.40%
2Java12.53%-4.72%
3Python12.21%+1.90%
4C++6.91%+0.71%
5C#4.20%-0.60%
6Visual Basic3.92%-0.83%
7JavaScript2.35%+0.26%
8PHP2.12%+0.07%
9R1.60%+0.60%
10SQL1.53%-0.31%
11Groovy1.53%+0.69%
12Assembly language1.35%+0.28%
13Swift1.22%-0.27%
14Perl1.20%+0.30%
15Ruby1.16%-0.15%
16Go1.14%+0.15%
17MATLAB1.10%+0.12%
18Delphi/Object Pascal0.87%-0.41%
19Objective-C0.81%-0.39%
20PL/SQL0.78%+0.04%
21Rust0.78%--
22SAS0.77%--
23Classic Visual Basic0.71%--
24Scratch0.67%--
25Transact-SQL0.59%--
26Julia0.56%--
27Lisp0.55%--
28Logo0.51%--
29D0.50%--
30ABAP0.47%--
31Dart0.45%--
32Fortran0.45%--
33COBOL0.43%--
34Ada0.40%--
35Prolog0.40%--
36Scheme0.37%--
37Scala0.36%--
38VHDL0.34%--
39PowerShell0.34%--
40Kotlin0.32%--
41(Visual) FoxPro0.30%--
42TypeScript0.30%--
43Lua0.30%--
44Alice0.28%--
45LabVIEW0.26%--
46ML0.26%--
47Apex0.25%--
48Crystal0.25%--
49Solidity0.24%--
50Tcl0.23%--

对于选项的答案为是/否的选项, 大家是会用一个checkbox还是两个radio框? 哪个会更合理? 为什么?
最近看到一篇文章是关于这个问题的,发现挺有意思的.为此做个总结记录.有人在Twitter上发布该问题的讨论,摘选了些比较有用的观点. 相信在看过这些别人的观点后, 你会更清楚在什么情况下使用哪种类会更加合适.以下为一些用户的评论观点:

  • 对于checkbox, 如果他没被选中, 那么有两种可能:一个是用户就选择否,一个是用户落了该选项. 而对于radio,否就是意味着用户选择了否
  • 如果我无法推断哪个是默认值时,我会使用2个radio.比如问题"你是中国公民吗?",此时提供是/否单选框,而不是一个checkbox
  • 看措辞: checkbox - 在陈述语句中(如'我已同意条款')
    radio - 在疑问句中(如'你阅读并同意条款了吗?')
  • radio相当于是一个必选项, 需要经过认真思考, 而checkbox更像是一个可选项,用户可以跳过不用很仔细在意.


参考文章(https://www.sarasoueidan.com/blog/one-checkbox-or-two-radio-buttons/)

怎么最简单,快速将多维数组展开平铺为一维数组? 以下为博主的总结供参考:分为平铺展开的深度为2和全部平铺展开的:

先假设有个待展开数组:

$arr = [
    'a' => [
        'a1' => 'nice100.net',
        'a2' => 'good',
    ],
    'b' => [
        'b1' => [
            'b11' => 'nice',
            'b12' => 'like',
        ]
    ]
];
  • 平铺展开的深度为2:
//方法一
$result = call_user_func_array('array_merge', $arr);
//方法二(会更快)
$result = array_merge(...array_values($arr));
//结果输出
Array
(
    [a1] => nice100.net
    [a2] => good
    [b1] => Array
        (
            [b11] => nice
            [b12] => like
        )

)
  • 全部平铺展开
//如果要全部平铺展开,那么对于多维数组, array_merge函数就不能满足了,需要办理递归
$re = [];
array_walk_recursive($arr, function ($v, $k) use (&$re) {
    $re[$k] = $v;
}, $re);
//输入结果,注意如果存在相同的key,那么后者会覆盖前者
Array
(
    [a1] => nice100.net
    [a2] => good
    [b11] => nice
    [b12] => like
)