回文数判断

设 n 是任意自然数

如果 n 的各位数字反向排列所得自然数 与 n 相等 则 n 称为回文数

import sys
n = input("请输入一个5位数字:");
if len(n) < 5:
    print("长度小于五位") 
    sys.exit(0)
    
if n == n[::-1]:
    print("{}是回文数".format(n))
else:
    print("{}不是回文数".format(n))

接口


接口是一种类型, 一种抽象的类型
接口就是你要实现的方法的清单
接口的定义

type moner interface{
    方法的签名(参数)(返回值)
}

接口的实现

  • 实现了所有的方法就实现了这个接口
  • 实现了接口就可以当成这个接口类型的变量

接口变量

  • 实现了一个万能的变量, 可以保存所有实现了我这个接口的类型的值
  • 通常作为函数的参数出现

空接口

  • 接口中没有定义任何方法, 也就是说任意类型都实现了空接口
  • 作为函数参数->fmt.PrintLn()
  • mapinterface{}

    interface{}:空接口

接口底层

  • 动态类型 (存什么是什么)
  • 动态值

类型断言

  • 做类型断言的前提是 一定要是一个接口类型的变量
  • 类型断言1

        assign("1")
        func assign(a interface{}) {
            str, ok := a.(string)
        if !ok { // 不是字符串ok为空
           fmt.Println("猜错了")
        } else {
            fmt.Println("猜对了 传进来的是一个字符串:", str)
        }
    }
    
  • 类型断言2

        assign2("asf")
        func assign2(a interface{}) {
            switch v := a.(type) { // 只能在switch内部使用
            case string:
                fmt.Println("这是string类型", v)
            case int:
                fmt.Println("这是int类型", v)
            case byte:
                fmt.Println("这是byte类型", v)
            case int64:
                fmt.Println("这是int64", v)
            }
    
        }
    

PHP base64 转文件输出

/** base64转文件输出
 * @param String $base64_data base64数据
 * @param String $file        要保存的文件路径
 * @return boolean
 */
function base64ToFile(string $base64_data, string $file): bool
{
    if (!$base64_data || !$file) {
        return false;
    }
    return file_put_contents($file, base64_decode($base64_data), true);
}

PHP 文件转base64输出

/** 文件转base64输出
 * @param String $file 文件路径
 * @return String base64 string
 */
function fileToBase64(string $file): string
{
    $base64_file = '';
    if (file_exists($file)) {
        $mime_type = mime_content_type($file);
        $base64_data = base64_encode(file_get_contents($file));
        $base64_file = 'data:' . $mime_type . ';base64,' . $base64_data;
    }
    return $base64_file;
}

PHP把二维数组按照某个字段分组


/**
 * 把二维数组按照某个字段分组
 *
 * @Author moming
 * @DateTime 2022-09-03
 * @param array $arr 二维数组
 * @param string $key 需要分组的key
 * @return array 分组结果 
 */
function array_group_by(array $arr, string $key): array
{
    $grouped = [];
    foreach ($arr as $value) {
        $grouped[$value[$key]][] = $value;
    }

    if (func_num_args() > 2) {
        $args = func_get_args();
        foreach ($grouped as $key => $value) {
            $parms = array_merge([$value], array_slice($args, 2, func_num_args()));
            $grouped[$key] = call_user_func_array('array_group_by', $parms);
        }
    }

    return $grouped;
}