首页
学习
活动
专区
圈层
工具
发布

(十三)给函数参数添加类型

# 一、给函数参数添加类型 说明 在我们定义函数的时候参数的类型是无法推断的,因为函数只是一段将要执行的代码 对于参数的类型只有在将要调用的时候才会知道,如果对函数参数的值没有限定的时候,就可以传递任意类型的值...如果当某个函数执行的是数学运算的时候我们传入的是一个字符串,那么就会发生不可预期的错误 例 function add(a, b) { console.log(a + b) } // 函数的参数没有类型...,当我们传递其他类型的参数也是可的, 机会出现不可预期的错误 add('hellow', {name: '张三'}) # 使用 ts 对参数值进行限定 function add(a: number, b...: number) { console.log(a + b) } // 因为限定了参数的类型,所以这里使用的时候传递了错误的参数就会报错 add('hellow', {name: '张三'})...price: number } function printProductTitle(p: Product) { console.log(p.title) } # 总结-写在最后 说明 参数的类型和之前学习的普通类型是一样的

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ️ TypeError: argument of type ‘NoneType‘ is not iterable - NoneType类型的参数不可迭代完美解决方法

    ️ TypeError: argument of type ‘NoneType’ is not iterable - NoneType类型的参数不可迭代完美解决方法 摘要 大家好,我是默语,擅长全栈开发...关键词:TypeError、NoneType、迭代、Python 错误、错误处理、调试技巧 引言 ✨ 在Python开发中,TypeError 是一种常见的错误类型,尤其是当我们错误地操作 None 时...在Python中,NoneType 是表示空值的一种数据类型。它只有一个值,就是 None,通常用于表示"没有值"或"空"。例如,当函数没有明确返回值时,Python会默认返回 None。...这是因为 None 不是一个可迭代对象(如列表、字典或字符串),因此不能进行迭代操作。...None ️ 函数的默认参数通常被设置为 None,但在函数内部如果不检查这个值而直接进行迭代操作,也会引发错误。

    3.9K10

    使用下标给string类型赋值之后,cout输出变量为空的问题。

    今天写创建文件夹的时候,怎么创建都不会,反复修改,确定错误是出在了string类型的变量上面。...看下面代码 //这个一个函数中的代码,函数参数是string fileurl_s int len = fileurl_s.length(); std::string...fileurl_s_cy.c_str(),0); // 返回 0 表示创建成功,-1 表示失败 } } } 这个代码实现的功能是创建文件夹,以及子文件夹,根据参数来做...的问题,发现加上也无济于事,fileurl_s_cy整体长度依旧是0 我可以使用std::stringfileurl_s_cy = “www/ccccc” 这种形式正常创建文件夹,但就是无法使用下标的赋值方式...解决方法如下: 声明的时候改为std::string fileurl_s_cy(len,’\0’); 这样就可以正常使用下标赋值,输出以及整体输出 怕忘记,记录与此。

    6.3K40

    【C 语言】数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )

    文章目录 一、数据类型封装 二、作为 参数 或 返回值 代表无 三、void* 指针赋值与被赋值 四、void 类型变量不存在 一、数据类型封装 ---- 实现函数 的 底层函数开发者 , 不想将 底层的数据结构...暴露给 函数调用者 ; 如 : 定义一个函数 , int initEnv(void **handle) 该函数被 暴露给调用者 , 但是函数的 void **handle 参数类型是 void** ,...; 三、void* 指针赋值与被赋值 ---- C 语言中 , 对指针赋值时 , 只有 相同类型的指针 , 才能相互赋值 ; void* 作为 左值 可以 被赋值 任意类型的 指针 ; void* 作为...右值 赋值给其它类型的指针类型变量时 , 必须将 该指针强转为其它类型 ; 最常见的是使用 malloc() 函数申请内存时 , 其返回一个 void * 类型的指针 ; void *malloc(unsigned...int size); 如果分配内存完毕 , 将其赋值给一个其它类型指针时 , 需要强转 ; int *p = (int*) malloc(sizeof(int) * 10); 四、void 类型变量不存在

    2.9K10

    FastAPI(11)- 函数参数类型是列表,但不使用 typing 中的 List,而使用 list,会怎么样?

    update_item( list_: List[int] = Body(...), tuple_: Tuple[int] = Body(...), set..._: Set[int] = Body(...), ): results = {"list_": list_, "tuple_": tuple_, "set_": set_} return...、Set、Tuple 都会指定里面参数的数据类型 而 FastAPI 会对声明了数据类型的数据进行数据校验,所以会针对序列里面的参数进行数据校验 如果校验失败,会报一个友好的错误提示 使用 list、...set、tuple 的栗子 用 Python 自带的 list、set、tuple 类,是无法指定序列里面参数的数据类型,所以 FastAPI 并不会针对里面的参数进行数据校验 @app.put("/items...return results 变成传啥类型的值都可以 总结 要充分利用 FastAPI 的优势,强烈建议用 typing 的 List、Set、Tuple 来表示列表、集合、元组类型

    4.7K30

    flutter--Dart基础语法(二)流程控制、函数、异常

    下面就简单给大家罗列一下。 2.1 条件分支结构 Dart 中的条件分支结构就是 if - else 语句,其中 else 是可选的,Dart 的if判断条件必须是布尔值,不能是其他类型。...((candidate) => candidate.interview()); //实现了 Iterable 的类(比如, List 和 Set)同样也支持使用 for-in 进行迭代操作 iteration....'); 三、Dart中的函数 Dart 是一门真正面向对象的语言, 甚至其中的函数也是对象,并且有它的类型 Function 。 这也意味着函数可以被赋值给变量或者作为参数传递给其他函数。...例如:不能使用 if 语句 ,但是可以是用 条件表达式. 3.5 函数是一等对象 一个函数可以作为另一个函数的参数。...list.forEach(printElement); 同样可以将一个函数赋值给一个变量,例如: // 使用匿名函数 var loudify = (msg) => '!!!

    2K30

    Dart语言基础Map、List、Set操作合辑

    [Dart语言基础Map、List、Set操作合辑@凡科快图.png] Header1 Header2 -- -- CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章...Flutter完全采用了Dart语言,所以分析Dart语言基础相当于是学习了Flutter语言基础、 在Dart中,Map用来存储对像类型的数据,List与Set用来存储数组类型的数据。...Map.fromIterables(Iterable keys, Iterable values) // 使用默认实现LinkedHashMap创建一个严格的Map。...(123); // 创建元素类型固定的List var typeList = List(); // 只能添加字符串类型的元素 typeList.add("张三"); // 正确...类型不正确 // 直接赋值 创建List var numList = [1, 2, 3]; 然后获取List中的数据需要通过索引来获取,List中保存的数据索引从0开始计数,代码如下: ///方式一

    1.9K11

    【Flutter】Dart 数据类型 List 集合类型 ( 定义集合 | 初始化 | 泛型用法 | 初始化后添加元素 | 集合生成函数 | 集合遍历 )

    赋值限制 : 泛型不同的 List 集合斌量之间不能相互赋值 ; List list_int = [1 , 2, 3]; //打印集合 list1 : [1, true] print("打印集合...集合生成函数 : 调用集合 List 的 generate ( ) 方法 , 可以调用生成函数生成根据需求产生的元素 ; 2 . generate ( ) 函数原型 : ① int length 参数...: List 集合元素个数 ; ② E generator(int index) 参数 : 生成元素的回调函数 , 其中 index 是元素索引值 ; /** * Generates a list...示例代码 : import 'package:flutter/material.dart'; class DartType_List extends StatefulWidget { @override...泛型不同的 List 集合斌量之间不能相互赋值 // 不能将上面的 list 集合赋值给 该 list_int List list_int = [1 , 2, 3]

    1.2K10

    Git新开源高星《Flutter跨平台开发入门与实战笔记》安卓高阶必备

    API 各个参数的介绍或实现细节,感觉无从下手。...作为辅助,为了让大家快速无痛上手 Flutter,在这里免费分享给大家一份来自阿里大佬Git高星的 Flutter 学习笔记。...开发环境搭建和调试 开发环境的搭建 模拟器的安装与调试 开发环境的搭建 模拟器的安装与调试 …… 第五章 Dart语法篇之基础语法(一) Hello Dart 数据类型 变量和常量 集合(List、Set...区别 命名构造函数from和of的区别以及使用建议 …… 第七章 Dart语法篇之集合操作符函数与源码分析(三) Iterable Iterable类关系图 Iterable类方法图 forEach...(七) 可选类型 接口类型 泛型 类型具体化 …… 第十二章 Flutter中的widget Flutter页面-基础Widget Widget StatelessWidget Stateful Widget

    1.8K10

    Dart语言详解(二)——基本语法

    final和const 表示不可改变 相同点: 声明的类型可以省略 初始化后不能再赋值 不能和var同时使用 不同点: 类级别常量,使用static const const可使用其他const 常量的值来初始化其值...使用const赋值声明,const可以省略 可以更改非final、非const变量的值。...其他几个特单: 可在函数内定义 定义函数时可以省略类型 支持缩写语法=> int add(int a, int b) => a + b; 可选参数 可以选择命名参数 可以选择位置参数 可以添加默认参数...} main() { var result = mysteryMessage('Billy', 'howdy', 'the ranch'); print(result); } 匿名函数 可以赋值给变量...,通过变量调用 可以在其他函数当中直接调用或者传递给其他函数 //匿名函数 //赋值给变量 //无参匿名函数 var anonFunc1 = () => print('无参匿名函数');

    1.5K00

    【老孟Flutter】强大的空安全

    异常提示:null不能赋值给int变量。 这是空安全与以前最大的不同,默认情况下,变量不能为null(空安全以前任何类型都可以设置为null),更重要的是此异常在编译阶段即出现异常,无法编译通过。...如果想给一个变量赋值 null 要如何处理?只需在类型后面添加 ? 即可,如下: int age = 1; int? ageNull = null; String?...list3; 他们的区别就是是否可为 null 的区别,List 表示 List 不为 null 而且集合中的 Item 也不能为 null。...:放在类型后面表示当前变量可为null,例如 int a 和 int? b ,a 不能为null,而 b 可以。 !...:放在变量后面,表示此变量值不为null,如果为null则会抛出异常,此操作符经常用于如下场景:一个方法的参数为非空类型(int),而传递给当前方法的变量是可为null的类型(int?)

    2.8K20
    领券