- Pytorch 基础之张量索引
攻城狮随笔
Pytorch机器学习pytorch深度学习python
本次将介绍一下Tensor张量常用的索引与切片的方法:1.index索引index索引值表示相应维度值的对应索引a=torch.rand(4,3,28,28)print(a[0].shape)#返回维度一的第0索引tensorprint(a[0,0].shape)#返回维度一0索引位置,维度二0索引位置的tensorprint(a[0,0,0].shape)#返回维度一0索引,维度二0索引,维度三
- 数据库性能优化(sql优化)_索引详解04_深入理解B+树_yxy)
yxy___
数据库性能优化sql
数据库性能优化_深入理解B+树1通过代码方式解释B+树1.1查找操作1.2插入操作1.3删除操作1.4更新操作2组合索引的查找逻辑2.1等值查找2.1范围查找1通过代码方式解释B+树B树索引在增删改操作时,底层结构会发生相应的变化,以保持树的平衡和有序性。下面通过简单的伪代码来讲解增删改查时,B+树的底层结构变化(目的是为了让大家深入理解B+树)1.1查找操作思路:1.从根节点开始查找。2.对于每
- 达梦HS搭建(DM-MYSQL)_yxy
yxy___
数据库达梦mysql数据库dbadatabaselinux
dmhsDM到MYSQL搭建1环境准备1.1DM8数据库安装1.2MYSQL数据库安装1.2DMHS安装2源端部署2.1开启源端数据库归档和逻辑日志2.1.1开启归档2.1.2开启逻辑日志2.1.3注意2.2创建DDL触发器和辅助表2.3配置dmhs.hs2.4环境变量配置3目的端部署3.1创建同步用户并授权3.2配置dmhs.hs3.3环境变量配置3.4ODBC配置4同步测试4.1启动dmhs服
- 数据库性能优化(sql优化)_SQL执行计划01_yxy
yxy___
数据库性能优化sql
数据库性能优化_SQL执行计划详解011执行计划简介1.1什么是sql执行计划?1.2执行计划解决了什么问题?1.3总结2执行计划的查看方式3执行计划完整示例4执行计划组成部份1执行计划简介1.1什么是sql执行计划?执行计划(ExecutionPlan),也称为查询计划或解释计划,是数据库在执行一个查询语句(如SQL查询)之前制定的详细步骤指南,包括使用哪些索引、连接顺序、操作顺序等信息。是一条
- 《机器学习实战》——在python中使用Matplotlib注解绘制树形图
哆啦AA梦
python机器学习python机器学习
#encoding=utf-8#使用文本注解绘制树形图importmatplotlib.pyplotaspltdecisionNode=dict(boxstyle="sawtooth",fc="0.8")leafNode=dict(boxstyle="round4",fc="0.8")arrow_args=dict(arrowstyle="<-")#上面三行代码定义文本框和箭头格式#定义决策树决策
- ffmpeg源码分析:结构体成员管理系统-AVOption
风雨兼程8023
ffmpegffmpegAVOption
AVOption用于在FFmpeg中描述结构体中的成员变量。一个AVOption可以包含名称,简短的帮助信息,取值等等。下面开始从代码的角度记录AVOption。AVOption结构体的定义如下所示。libavutil\Opt.h/** *AVOption */typedefstructAVOption{ constchar*name; /** *shortEnglishhelptext
- mybatis返回Map
Davy的空白笔记
mybatismybatisjava
返回多条数据的时候,用map作为返回值,key保存一些标志性字符串,value保存具体的实体类或者是hashMap都很好用。mapper.java//Map:键是这条记录的主键,值是记录封装后的javaBean//@MapKey:告诉mybatis封装这个map的时候使用哪个属性作为map的key@MapKey("id")publicMapgetEmpByLastNameLikeReturnMap
- 简化代码,提高可维护性 Java外观模式解读,让你的代码优雅又高效
程序员老马头
java外观模式开发语言后端
一、引言1.1简介外观模式(FacadePattern)是一种常用的结构型设计模式,它为复杂的子系统提供一个简单的接口,隐藏复杂的实现细节。使用外观模式可以降低客户端与子系统的耦合度,使得客户端更加容易使用子系统,同时也可以提高代码的复用性。1.2设计模式的概念设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式是为了让代码更加简洁、易于维护和复用。常见的设计模式有
- 新来的一个同事,把SpringBoot参数校验玩的那叫一个优雅
程序员老马头
springbootoracle后端
介绍在开发现代应用程序时,数据验证是确保用户输入的正确性和应用程序数据完整性的关键方面。SpringBoot提供了强大的数据验证机制,使开发者能够轻松地执行验证操作。本文将深入介绍SpringBoot中的Validation,以及如何在应用程序中正确使用它。为什么使用数据验证?1.用户输入的正确性:数据验证是确保用户输入的正确性的一种重要手段。通过验证用户输入的数据,可以防止无效或错误的数据进入应
- Mybatis如何书写
黄袜子的小希
mybatis数据库java
kh下面我们开始书写mybatis①首先开始的时候创建数据库和表结构:createdatabasemybatis_demo;usemybatis_demo;CREATETABLE`user`(`id`int(11)NOTNULLauto_increment,`username`varchar(32)NOTNULLCOMMENT'用户名称',`birthday`datetimedefaultNULL
- linux云服务器下载安装JDK
云之墨里
javalinux服务器
linux云服务器下载安装JDK下载官网下载地址:https://www.oracle.com/java/technologies/downloads/#java8我选择的是jdk-8u321-linux-x64.tar.gz版本。安装1.使用mobaxterm登录云服务器2.在/usr/local/下新建java文件夹:cd/usr/localmkdirjava3.mobaxterm左侧区域进入
- boostrap组件
柒染
csshtml5html
Bootstrap来自Twitter(推特),是目前最受欢迎的前端框架。Bootstrap是基于HTML,css,JavaScript的,它简洁灵活,使得web开发更加快速。框架:顾名思义就是一套架构,它有一套比较完整的网页功能解决方案,而且控制权在框架本身,有预制的样式库,组件和插件。使用者要按照框架所规定的某种规范进行开发。这是我所学到的用CSS基础,所以我要分享给你们,希望可以帮助到你们。组
- Docker最新超详细教程——入门简介
金鳞踏雨
Dockerdocker容器运维命令
Docker最新超详细教程——入门简介微服务中存在的痛点什么是Docker?Docker如何解决依赖兼容问题?Docker如何解决不同系统环境问题?(生产环境差异)操作系统结构应用于计算机交互的流程Docker与虚拟机有什么区别?Docker架构镜像和容器DockerHub如何用Docker?下一节:Docker的安装与部署Docker最新超详细教程——入门简介微服务中存在的痛点之前学习了Spri
- vue组件添加全局方法_vue组件挂载到全局方法
缪之初
vue组件添加全局方法
在最近的项目中,使用了bootstrap-vue来开发,然而在实际的开发过程中却发现这个UI提供的组件并不能打到我们预期的效果,像alert、modal等组件每个页面引入就得重复引入,并不像element那样可以通过this.$xxx来调用,那么问题来了,如何通过this.$xxx来调用起我们定义的组件或对我们所使用的UI框架的组件呢。以bootstrap-vue中的Alert组件为例,分一下几步
- 关于MyBatis的几种通用写法
AugusQiu
web后端mybatisssm
一,用来循环容器的标签forEachforEach元素的属性主要有:item(集合中元素迭代时的别名),index(元素迭代时的索引),collection,open(常用于where语句中,表示以什么开始,比如以"("开始),separator(每次进行迭代时的分隔符),close(常用于where语句中,表示以什么结束)在使用forEach的时候,一定要注意collection属性是必须指定的
- 嵌入式Rust小探
weixin_40437029
rust
说明现在很多项目都在从C++/C迁移到Rust,这是一种内存管理更安全的语言,从根本上可以防止一些指针操作的问题既然如此,那我们也尝试一下如何在嵌入式开发当中使用Rust,然后再慢慢迁移到更多代码https://doc.rust-lang.org/reference/introduction.htmlhttps://zhuanlan.zhihu.com/p/628575325https://www
- 安全威胁情报简述
安全大哥
威胁情报安全网络
什么是安全情报?从情报的类型上来看可以分为:资产情报、事件情报、漏洞情报和威胁情报。注意,我们常说的威胁情报,并不完全等同于安全情报。四大类信息[2]资产情报:主要用于确认企业自身的资产e.g.企业自身的数据SOC、SIEM数据日志、告警等。资产情报如何搜集?主要来自于企业的SOC(SecurityOperationCenter),SIEM(SecurityInformationandEventM
- python执行linux外部程序_Python3.5使用subprocess.run调用外部程序
weixin_39902184
Python3.5的subprocess模块新增了run()函数,大部分调用子进程的场景都推荐使用run()函数,一些高级的用法则可以直接调用Popen接口。run()函数run函数常用参数如下:run(args,*,stdin=None,input=None,stdout=None,stderr=None,shell=False,cwd=None,timeout=None,check=False
- 创新药周报及靶点研发分析报告
魔都财观
本文还有配套的精品资源,点击获取简介:本报告深入探讨医药行业,提供最新创新药物研发动态,并分析全球和国内的医药趋势。报告关注靶点研发的关键性,详细介绍特定靶点如肿瘤抑制因子等的生物学功能和作为药物靶点的潜力,同时深入临床试验阶段的新药项目,讨论新药审批流程和政策环境。报告还涵盖行业投资和合作动态,预测未来市场趋势,为投资者和决策者提供宝贵的行业洞见。1.医药行业研发动态分析1.1行业背景概述医药行
- HTTPS安全版预告页面设计与实施指南
魔都财观
本文还有配套的精品资源,点击获取简介:本文深入探讨了网站即将上线时,如何使用HTTPS协议创建一个安全且吸引人的预告页面。HTTPS是HTTP的安全版本,利用SSL/TLS协议提供数据加密、身份验证和数据完整性,对于保护用户隐私和提升网站信任度至关重要。文章详细阐述了构建预告页面时所需的基础HTML、CSS和JavaScript技术,并且讨论了如何配置HTTPS以及进行测试和SEO优化的重要性。1
- python中append函数什么意思_在python中append()函数的作用是什么
魔都财观
在python中append()函数的作用是什么发布时间:2020-07-1014:07:51来源:亿速云阅读:103作者:清晨这篇文章将为大家详细讲解有关在python中append()函数的作用是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python中的append()方法用于在列表末尾添加新的对象。append()方法语法:list.append(
- 【elasticsearch】tasks 查看任务
infiniteWei
elasticsearchelasticsearch搜索引擎
模糊匹配GET/_tasks?detailed=true&actions=*reindex例如,返回:节点信息(nodes)&任务信息(tasks)某个任务正在执行一个跨集群的reindex操作,数据从远程集群的source_index索引复制到本地集群的destination_index索引"nodes":{"tmKI6JpWRe2tEezmK_NCZA":{#节点id"name":"fdd16
- 【elasticsearch】reindex 操作将索引的数据复制到另一个索引
infiniteWei
elasticsearchelasticsearch搜索引擎
在Elasticsearch中,reindex操作用于将一个索引的数据复制到另一个索引。常用的reindex命令有很多细节,下面是一些常见用法和命令详解:基本命令基础Reindex命令POST/_reindex{"source":{"index":"source_index"},"dest":{"index":"destination_index"}}source:需要复制数据的源索引。dest:
- 2024 年,CloudCanal 做了 3 件事...
ClouGence
CloudCanal数据库elasticsearchoraclepostgresql
CloudCanal的2024,稳扎稳打,开拓创新。这一年里,CloudCanal依旧保持稳定的更新频率,共发布13个版本,CloudCanal本年度累计开发170+项新特性,完成120+处功能优化,修复大大小共220+个bug,在功能完备性和稳定性方面有了质的飞跃。每一次版本更新,都是产品精益求精的见证,也是吸引用户长期使用的基础。总结起来,CloudCanal一共做了3件事。P.S文后有彩蛋丰
- vue组件挂载到全局方法
w1366352655
vue组件挂载到全局方法在最近的项目中,使用了bootstrap-vue来开发,然而在实际的开发过程中却发现这个UI提供的组件并不能打到我们预期的效果,像alert、modal等组件每个页面引入就得重复引入,并不像element那样可以通过this.$xxx来调用,那么问题来了,如何通过this.$xxx来调用起我们定义的组件或对我们所使用的UI框架的组件呢。以bootstrap-vue中的Ale
- DeepSeek:突破传统的AI算法与下载排行分析
smart_ljh
行业搜索人工智能AI
DeepSeek的AI算法突破DeepSeek相较于OpenAI以及其它平台的性能对比DeepSeek的下载排行分析(截止2025/1/28AI人工智能相关DeepSeek甚至一度被推上了搜索)未来发展趋势总结在人工智能技术飞速发展的当下,搜索引擎市场也迎来了新的变革。DeepSeek,作为一款基于深度学习技术和大数据算法的搜索引擎,以其独特的优势在国内外市场上引起了广泛关注。下面介绍一下针对De
- Flutter 中的 Dismissible 小部件:全面指南
明似水
flutterflutter
Flutter中的Dismissible小部件:全面指南在Flutter中,Dismissible是一个方便的组件,它允许用户通过滑动来移除列表中的条目。这在实现如待办事项列表、消息应用或任何需要快速删除项的场景中非常有用。本文将详细介绍Dismissible的用途、属性、使用方式以及一些高级技巧。什么是Dismissible小部件?Dismissible是Flutter的一个组件,它提供了一种交
- 达人评测酷睿i7 12800hx和i7 12700h选哪个
sdsadwe
cpucpu
i7-12700H采用6大核8小核设计,拥有14核心20线程,主频为2.7GHz,睿频为4.6GHz,三级缓存高达24MB选i712700H还是i712800hx这些点很重要http://www.adiannao.cn/dyi712800HX采用10nm工艺16核24线程,25MB三级缓存,最高4.8GHz,32EU核显
- 初识Docker——入门介绍
清九401
docker容器运维
项目部署问题:大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:1.依赖关系复杂,容易出现兼容性问题2.开发、测试、生产环境有差异Docker如何解决依赖的兼容问题:1.将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包,形成可移植镜像2.将每个应用放到一个隔离容器去运行,避免互相干扰Docker如何解决不同系统环境的问题?1.Docker将用户程序与所需要调用的系统(比如
- 蓝桥杯单片机模块练习之AD/DA
我的头绝不是面团捏的
蓝桥杯单片机单片机
蓝桥杯单片机比赛系列6AD/DA转换AD/DA原理相关电路pcf8591器件地址代码解释修改代码AD自写代码ADDAAD/DA原理相关电路通过pcf8591芯片实现ad转换。板子上ad采集主要采集滑动变阻器的电压值和与光敏电阻串联电阻的电压值。ad为8位精度,采集电压0-5V对应的值为0-255。根据需要可以对读取的值进行调整。da也通过pcf8591输出,对应引脚在外部引出,在20PIN中19位
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include