23.1、ts中的函数,接口定义函数形状,可选参数,参数默认值,剩余参数,函数重载

这篇博客介绍了 TypeScript 中函数的多种特性,包括如何声明和表达函数,通过接口定义函数的形状以确保类型一致性。讨论了可选参数的使用,允许参数数量的灵活性,并讲解了参数默认值的功能。此外,还详细阐述了剩余参数的运用,以及如何通过函数重载来实现更精确的类型匹配,例如在 `reverse` 函数的例子中,针对不同类型的输入提供不同的输出类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

温习一下函数

函数是javascript的一等公民

定义函数的两种常用方式:函数声明(Function Declaration)和函数表达式(Function Expression)
function sayHi1() {
   
   
  console.log('hello, world')
}

let kate2 =
<think>我们被要求提供关于Python内置函数`str()`的详细信息,包括其文档、参数、返回值和示例。根据引用[3]中的内容,我们知道`str()`函数可以将各种类型的数据(如整数、浮点数、列表、元组、字典和集合)转换为字符串类型。此外,我们还需要参考其他引用中的信息来完善答案。 ### 步骤 1. **函数定义**:`str()`函数是Python的内置函数,用于将给定对象转换为字符串。 2. **参数**:`str()`函数可以接受一个对象参数,以及可选的编码和错误处理参数(当对象是字节对象时)。 3. **返回值**:返回对象的字符串表示形式。 4. **示例**:展示不同类型对象转换为字符串的情况。 ### 详细说明 #### 函数签名 ```python str(object='') str(object=b'', encoding='utf-8', errors='strict') ``` #### 参数说明 - **object**(可选):要转换为字符串的对象。如果未提供,则返回空字符串。 - **encoding**(可选):当对象是字节(bytes)对象时,指定解码使用的编码。默认是'utf-8'。 - **errors**(可选):指定如何处理解码错误。默认是'strict',意味着遇到错误会引发UnicodeError。其他值包括'ignore', 'replace', 'xmlcharrefreplace'等。 #### 返回值 返回一个字符串,表示给定对象的字符串形式。具体转换规则如下: - 如果对象是字符串,则返回对象本身。 - 如果对象是数字(整数、浮点数等),则返回其字符串表示。 - 如果对象是容器(如列表、元组、字典、集合),则返回其字符串表示,即使用方括号、圆括号或花括号括起来的元素表示。 - 如果对象是自定义类,默认调用其`__str__()`方法。如果未定义`__str__()`,则调用`__repr__()`方法。 #### 示例 根据引用[3]中的示例,我们可以展示多种类型的转换: ```python # 整数转换为字符串 print(str(-23)) # 输出: '-23' # 浮点数转换为字符串 print(str(1.3e2)) # 输出: '130.0' # 列表转换为字符串 a_list = [12, '-23.1', 'Python'] print(str(a_list)) # 输出: "[12, '-23.1', 'Python']" print(str(a_list)[0]) # 输出: '[' # 元组转换为字符串 a_tuple = (23, '9we', -8.5) print(str(a_tuple)) # 输出: "(23, '9we', -8.5)" # 字典转换为字符串 a_dictionary = {'Huawei':'China', 'Apple':'USA'} print(str(a_dictionary)) # 输出: "{'Huawei': 'China', 'Apple': 'USA'}" print(str(a_dictionary)[10]) # 输出: ' '(空格) # 集合转换为字符串 a_set = {'China', 'Japan', 'UK'} print(str(a_set)) # 输出: "{'Japan', 'UK', 'China'}"(注意集合无序,输出顺序可能不同) ``` #### 自定义对象转换 对于自定义类,我们可以通过定义`__str__`方法来控制`str()`函数的输出: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f"Person(name={self.name}, age={self.age})" p = Person("Alice", 30) print(str(p)) # 输出: Person(name=Alice, age=30) ``` ### 注意事项 1. 当转换字节对象(bytes)时,必须提供`encoding`参数,否则会返回字节对象的字符串表示(如`b'...'`)。 ```python b = b'hello' print(str(b)) # 输出: "b'hello'" print(str(b, encoding='utf-8')) # 输出: 'hello' ``` 2. 如果转换过程中出现编码错误,根据`errors`参数处理: ```python b = b'\x80abc' # 使用默认的'strict'会引发异常 # 使用'ignore'忽略无法解码的字节 print(str(b, encoding='utf-8', errors='ignore')) # 输出: 'abc' # 使用'replace'用替换字符(如?)替换 print(str(b, encoding='utf-8', errors='replace')) # 输出: '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南朝听月

你的打赏是我持续贡献的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值