- Swift基础语法学习
中古传奇
swiftc++面试java
Swift基础语法学习0前言--Swift特点优势(忽悠点)1环境搭建1.1Xcode安装1.2离线安装踩坑指南2Swift语言2.1基本数据类型2.1.1申明常量和变量2.1.2整数类型2.1.3浮点数2.1.4布尔值2.1.5元组2.1.6可选类型2.1.7错误处理3断言和先决条件3.1断言和先决条件调试代码的好处3.2使用断言进行调试3.3强制执行先决条件3.4基本运算符时间:2021-22
- Swift基础语法
huang1233
Swiftswift
print("HelloSwift").不用编写main函数,Swift将全局范围内的首句可执行作为程序入口.一句代码尾部可以省略分号(;),多句代码写在同一行时必须用分号(;)隔开.用var定义变量,let定义常量,编译器能自动推断出变量\常量的类型leta=10letb=20varc=a+b+10c+=30Playground可以快速预览代码效果,是学习语法的好帮手Command+Shift+
- Swift初学笔记之Swift基础语法
_迦与迦若
Swift编程语言swiftiosxcode
一、变量声明与oc相比更简洁,编译时的检错机制更完善1、let声明常量,var声明变量varmyVariable=42myVariable=50letmyConstant=422、如果初始化时直接赋值可以不声明类型,swift会自己识别(即类型推断)。反之需要用冒号:声明变量类型letmyString="HelloWorld"print(myString);//;加不加都可以,不会报错letmSt
- python 笔记 if语句的基本使用
日暮途远z
Python自学复习专用python笔记
if+判断的条件(布尔类型):条件成立时要做的事if语句后一定要加冒号age=16;if(age>=18):print(f"你已经年满18岁")print(f"即将步入大学生活")else:print(f"快去学习");练习代码:实现按键输入判断年龄是否免票//input获取键盘输入input获取到的所有内容都是字符串我们利用int强制把输入类型转化为整形age=int(input("请输入年龄:
- java一点笔记
晚晚不晚
java笔记开发语言
强制类型转化inta;longb;b=a;a=(int)b;Stringstr1="234";intval=Integer.valueOf(str1);intp=100;Stringstr2=String.valueOf(p);字符串拼接inta=10;intb=20;System.out.println("a+b="+a+b);System.out.println(a+b+"a+b");上述代码
- [1298]js2py.base.JsObjectWrapper 类型转化为字典
周小董
Python前行者python
在js2py中,可以使用to_dict方法将JsObjectWrapper类型的对象转换为Python字典。以下是一个示例代码:importjs2py#假设我们有以下JavaScript代码js_code="""varobj={name:'Alice',age:25,address:{city:'NewYork',country:'USA'}};"""#执行JavaScript代码并获取JsObj
- Pyspark DataFrame常用操作函数和示例
还是那个同伟伟
Spark人工智能机器学习pandaspysparkspark
针对类型:pyspark.sql.dataframe.DataFrame目录1.打印前几行1.1show()函数1.2take()函数2.读取文件2.1spark.read.csv3.获取某行某列的值(具体值)4.查看列名5.修改列名5.1修改单个列名5.2修改多个列名5.2.1链式调用withColumnRenamed方法5.2.2使用selectExpr方法6.pandas类型转化为pyspa
- JavaScript入门第七章(数据类型转换 )
v_648374
javascript开发语言ecmascript
显式转换:程序员主动调用语法去转换数据类型,语义更加明确注意:数据类型的转变并不会改变原来变量的值,而是会产生一个新的值例如:(1)letnum='10';parseInt(num):为什么要有数据类型转换?有时候想要进行某种计算的时候,由于数据类型不同往往会产生一些错误的结果,为了避免这种结果,我们需要将某种数据类型转化为其他数据类型例如:prompt()输入框得到的数据的类型是string,如
- C++进阶-类型转换
bingo691
C++进阶c++开发语言
1.C语言中的类型转换在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败显式类型转化:需要用户自己处理注意:C语言隐式类型转换:整形之间浮点数和整形之间强制类型转换:指针之间整形和指针无关联类
- int与string类型转化(C++)
Z-Chelsea
C++c++开发语言
int转为string利用sstream类#include#includeusingnamespacestd;intmain(){intn=10;stringstreamss;stringstr;ss>str;cout#includeusingnamespacestd;intmain(){intn=10;chart[15];sprintf(t,"%d",n);//转成char类型cout#incl
- JS 09-19 or 20
幻影小爽
数据类型转换强制类型转化ParseInt将数字或者字符转化整形Parsefloat将数字或者字符转化为浮点型如果转化内容结果是整形那么结果就是整形不会是浮点型Number(‘内容’)结果只有两种:一种是数字类型一种是NaN主要内容中有一个不是数字那么结果就是NaNString将内容转化为字符串类型:当使用string转化nullundefined会直接将这个原始的数据类型转化为字符串Boolean
- 5.常量和数据类型(数字类型,字符串类型,模板字符串,布尔类型undefined,null检测数据类型),类型转化
清华都得不到的好学生
js学习javascript前端开发语言
什么是常量常量就是不能改变的量,就是向计算机内存要一款空间然后存储的东西不能改变用const声明并且一定要初始化值Document//常量意思就是跟计算机内存要一个盒子,但是这个盒子里面的东西和变量不一样,变量盒子里面的东西可以来回变化//但是常量是不能改变盒子里的东西的,注意变量用let声明但是常量使用const声明,并且在声明的时候一定要赋值constPI=3.141592653//注意常量一
- 函数指针与 typedef
edstiny
C语言c语言
本期分享2个函数指针的例子以及利用typedef简化代码1.(*(void)(*)())0)();//代码含义解释://0-int//0-int*//0x0012ff40-int//0x0012ff40-int*//void(*)()-函数指针类型//(void(*)())-强制类型转换//调用0地址处的函数//1.将0强制类型转化成void(*)()的函数指针//2.调用0地址处的函数(*(vo
- Djiango后端开发入门学习之task04--serializers(序列化器,准确说是数据类型转化器)及应用
小鳄鱼队里一只小蜗牛
学习sqlite数据库
本文根据datawhale开源Djiango后端开发入门(https://github.com/Joe-2002/sweettalk-django4.2)Task04:序列化器serializers及其应用做的学习笔记一、学习目标 序列化器serializers的使用 (1)序列化单个对象 (2)序列化多个对象 (3)序列关联对象(有外键)二、serializers序列化器的理解1功能
- c语言中的隐式类型转换
发生了什么Bug
嵌入式c语言高级编程c语言开发语言
数据类型转化我们在实际编程中,不管你是有意的还是无意的,有时候都会让两个不同类型的数据参与运算,编译器为了能够生成CPU可以正常执行的指令,往往会对数据做类型转换,将两个不同类型的数据转换成同一种数据类型。数据类型转换分为两种:一种是隐式类型转换,一种是强式类型转换,如果程序员在程序中没有对类型进行强式类型转换,则编译器在编译程序时就会自动进行隐式类型转换。一个C程序中发生隐式类型自动转换,主要是
- 力扣:51. N 皇后
AnDanXingKo
回溯leetcode算法
回溯解法思路:1.用二维char数组来模拟放置皇后操作,同时要先把先将二维数组中全部赋值为'.'来表示空位。再调用回溯函数,终止条件为遍历的行数等于n时结束遍历,把char【】【】类型的值加入到集合li1中,再加加入过程中要将char【】【】类型转化成LIst类型再把li2集合加入到li1集合中去。2.用for循环来遍历全部的操作,用jiancha()函数检查char【row】【i】节点的同一行和
- Java基础知识总结(持续更新中)
Keven__Java
算法题Javajava开发语言算法eclipseidea
Java基础知识(持续更新)类型转化:数字、字符串、字符之间相互转化数字字符串//数字转字符串//method1intnumber=5;Stringstr=String.valueOf(number);//method2intnumber=5;Integeritr=number;//int装箱为对象,再调用对象的toString方法Stringstr=itr.toString();//或者直接St
- C语言中的数据类型-强转
xiang_Tree
C语言c语言
强制类型转换概念:将某种类型的数据转化我们需要的数据类型,注意强制类型转化是临时强转,不会改变本身的数据类型。强转又分为显式强转和隐式转化显示强转是按照我们的要求进行转化格式:(需要转化数据类型)变量名#includeintmain(){inta=0;intb=2.71;a=(int)b;//显式强转printf("a=%d,b=%d\n",a,b);return0;}输出a=2,b=2.71隐式
- C语言的操作符(运算符)家族
栀酝
C语言学习学习c#c语言
目录1.算数操作符:+、-、*、/、%1.1分类编辑1.2注意2.赋值操作符:=和复合赋值2.1连续赋值2.2复合赋值符3.单⽬操作符:++、--、+、-3.1++和--3.2前置++或--3.3前置++或--3.4+和-(单目操作符)4.关系操作符4.1介绍4.2注意5.逻辑操作符:!,&&,||5.1分类5.2短路6.条件操作符7.强制类型转化8.位运算符9.杂项运算符↦sizeof&三元10
- 【栈】【字符串和int类型转化】Leetcode 150 逆波兰表达式求值
苹果就叫不呐呐
Leetcodeleetcode算法java职场和发展程序人生
【栈】【字符串和int类型转化】Leetcode150逆波兰表达式求值解法1栈---------------题目链接Leetcode150逆波兰表达式求值-------------------解法1栈字符串转化为int类型数据:Integer.parseInt(s)Long.parseLong(s)Double.parseDouble(s)判断字符串相等s1.equals(s2)创建栈Stack(
- 【c++】类和对象(下)
Jayce..
c++c++
目录1.初始化列表的妙用1.1为什么需要初始化列表1.2初始化列表的优势1.3示例1.4注意2.明确禁止隐式转换:explicit关键字2.1隐式类型转化2.2explicit关键字的作用2.3使用场景3.静态成员的独特魅力3.1静态成员变量3.2静态成员函数4.匿名对象:一次性的便利4.1匿名对象的定义和使用4.2使用场景5.友元关系的深入理解5.1友元函数5.2友元类6.内部类:隐藏的艺术6.
- Swift基础 for循环
乐事派
Swiftswiftiosxcode
for-in循环forindexin0..<100{//执行重复操作}如果不需要使用到下标index,则可以使用_来省略for_in0..<100{//执行重复操作}循环语句下的forloopforloop是标签语句,一般用于结束循环(主要是外循环
- net面试web篇
青木川_
1.javascript中的=,==,===区别。=,是赋值运算。==,判断两个变量是否相同,仅限于值,如果值相同而类型不同,javascript会在内部进行类型转化。===,判断两个变量是否相同,无论是值还是类型,如果类型不同而值相同,也会返回false,而引擎不会进行内部转化。2.javascript中的undefined,null区别?出现undefined的原因是javascript引擎不
- 小周学JAVA—八股六
满屋的酒气也听彻妄语
java开发语言
自动装箱和拆箱Java中基础数据类型与它们对应的包装类见下表:原始类型包装类型booleanBooleanbyteBytecharCharacterfloatFloatintIntegerlongLongshortShortdoubleDouble装箱:将基础类型转化为包装类型。拆箱:将包装类型转化为基础类型。当基础类型与它们的包装类有如下几种情况时,编译器会自动帮我们进行装箱或拆箱:赋值操作(装
- Python基础
先生先生393
python开发语言
目录1.数据类型2.类型转化3.输入4.格式化输出5.逻辑运算符ifelse结构ifelifelse结构6.循环7.容器1字符串1下标2切⽚3字符串的查找⽅法find4字符串的替换⽅法replace5字符串的拆分split6字符串的链接join8列表1列表⽀持下标和切⽚,⻓度2查找-查找列表中数据下标的⽅法3查找-判断是否存在4查找-统计出现的次数5添加数据的⽅法6指定下标位置添加7列表合并8修改
- 【JavaScript 漫游】【007】数据类型转换
皮皮伍同学
JavaScript漫游javascript前端
文章简介本文为【JavaScript漫游】专栏的第007篇文章,对JS数据类型转化语法进行了简记。数据类型的转换指的是将JS的某一数据类型的值转换为JS的某一原始数据类型的值,也就是number、string和boolean。Number方法强制转换为number类型String方法强制转换为string类型Boolean方法强制转换为boolean类型自动转换为数值的场景自动转换为字符串的场景自
- Swift基础13(扩展)
SunshineBrother
扩展就是向一个已有的类、结构体或枚举类型添加新功能。扩展可以对一个类型添加新的功能,但是不能重写已有的功能。Swift中的扩展可以:添加计算型属性和计算型静态属性定义实例方法和类型方法提供新的构造器定义下标定义和使用新的嵌套类型使一个已有类型符合某个协议扩展的语法使用extension关键字来声明扩展extensionSomeType{//newfunctionalitytoaddtoSomeTy
- PG日期类型系列一
喜羊羊love红太狼
数据库数据库开发
目录常用日期类型转化格式化模式字符串规则日期类型转字符串timestamp日期类型转date和timecurrent_timestamp、localtimestamp、localtime类型转化要求格式描述HH一天的小时数(01-12)HH12一天的小时数(01-12)HH24一天的小时数(00-23)MI分钟(00-59)SS秒(00-59)MS毫秒(000-999)US微秒(000000-99
- CTF-WEB进阶与学习
Ryongao
网络安全
PHP弱类型===在进行比较的时候,会先判断两种字符串的类型是否相等,再比较==在进行比较的时候,会先将字符串类型转化成相同,再比较如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行转化规则字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。e和E表示科学计数法md5绕过弱类型比较绕过弱类型比较绕过题目:$a!=
- 2018-09-15
H丶hard
Effectivec++第三版绪论std::size_t是一个typedef,属于unsigned类型。构造函数被声明为explicit,可阻止被用来执行隐式类型转化:classA{public:A();//默认构造函数};classB{public:explicitB(intx=0,boolb=true);//默认构造函数};classC{public:explicitC(intx);//非默认
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。