惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
人人都是产品经理
人人都是产品经理
H
Heimdal Security Blog
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
雷峰网
雷峰网
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
A
About on SuperTechFans
V2EX - 技术
V2EX - 技术
小众软件
小众软件
博客园 - Franky
博客园 - 司徒正美
P
Privacy International News Feed
爱范儿
爱范儿
U
Unit 42
博客园 - 叶小钗
The Hacker News
The Hacker News
C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
D
Docker
T
Threatpost
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
L
LINUX DO - 最新话题
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
A
Arctic Wolf
Spread Privacy
Spread Privacy

szhshp 的第三边境研究所

假设, AI 把我代替的那一刻真的到来 | szhshp 的第三边境研究所 小傻瓜都能懂的 AstrBot QQ 机器人集成 MCP 功能实战指南 | szhshp 的第三边境研究所 《智人之上: 从石器时代到 AI 时代的信息网络简史》阅读笔记 | szhshp 的第三边境研究所 iPadOS 26 无法设置空间场景图片壁纸的解决方法 | szhshp 的第三边境研究所 《一路云海》(终) | szhshp 的第三边境研究所 《一路云海》(四): 如何不按套路旅行 | szhshp 的第三边境研究所 《一路云海》(三): In Ya Mellow Tone | szhshp 的第三边境研究所 《一路云海》(二): 关西世博参观纪实 | szhshp 的第三边境研究所 《一路云海》(一): 新的征程 | szhshp 的第三边境研究所 2025 大阪世博会 [ 3 天前-先到先得 ] 阶段 场馆预约必中独家攻略 | szhshp 的第三边境研究所 Hackathon 随想 | szhshp 的第三边境研究所 一杯双皮奶 | szhshp 的第三边境研究所 Armbian + CasaOS + NAS 配置指南 | szhshp 的第三边境研究所 Docker 构建镜像报错: error getting credentials - err: exit status 1, out: `` | szhshp 的第三边境研究所 Disqus RIP! 论过高的维护成本如何治疗固执的坏习惯 | szhshp 的第三边境研究所 炸弹猫桌游变体规则 | szhshp 的第三边境研究所 《小岛经济学》阅读笔记 | szhshp 的第三边境研究所 《金钱心理学》阅读笔记 | szhshp 的第三边境研究所 为知笔记 RIP: 迁移剩余的笔记 | szhshp 的第三边境研究所 2025 博客第十年展望 - 再见我的过去 | szhshp 的第三边境研究所 我在独立游戏里面致敬的作品 | szhshp 的第三边境研究所 《How to make thing faster》阅读笔记 | szhshp 的第三边境研究所 《The Art of Clean Code》阅读笔记 | szhshp 的第三边境研究所 《Clean Architecture: A Craftsman Guide to Software Structure and Design》阅读笔记 | szhshp 的第三边境研究所 《How AI Works》阅读笔记 | szhshp 的第三边境研究所 游戏策划废案 - Project Uranus | szhshp 的第三边境研究所 游戏策划废案 - Project X | szhshp 的第三边境研究所 人生第一款独立游戏开发复盘 | szhshp 的第三边境研究所 Trap of Life | szhshp 的第三边境研究所 如果我用手搓了个暗物质雏形 | szhshp 的第三边境研究所 《Rust Programming Language》- EX - Cheatsheet | szhshp 的第三边境研究所 新的播放器上线了 | szhshp 的第三边境研究所 Cypress - End-to-End Testing: OKTA Authentication with MFA | szhshp 的第三边境研究所 VSC x VIM - 反正多学几个快捷键没有坏处 | szhshp 的第三边境研究所 两小时 Docker 速成 - Getting Started | szhshp 的第三边境研究所 《The Joy of Javascript》- 5 - Data | szhshp 的第三边境研究所 《The Joy of Javascript》- 4 - Meta Programming | szhshp 的第三边境研究所 《The Joy of Javascript》- 3 - ADT(Algebraic Data Type) | szhshp 的第三边境研究所 Web-Automation Testing | szhshp 的第三边境研究所 《The Joy of Javascript》- 2 - Functor/Monad | szhshp 的第三边境研究所 《The Joy of Javascript》- 1 - Object/Function | szhshp 的第三边境研究所 EvalError: Possible side-effect in debug-evaluate | szhshp 的第三边境研究所 前端 QA 工具链指南 - husky,commitlint,commitizen,eslint,typescript,express | szhshp 的第三边境研究所 效率工具 & 软件推荐 | szhshp 的第三边境研究所 站点开源 Project Titan | szhshp 的第三边境研究所 cmd/powershell-命令速查-Cheatsheet | szhshp 的第三边境研究所 Git-命令速查与相关问题解决-Cheatsheet & Troubleshooting | szhshp 的第三边境研究所 Tailwind.css not included in NextJS Production | szhshp 的第三边境研究所 Github GraphQL API - Data Integration | szhshp 的第三边境研究所 尝试 Windows Terminal + z.lua | szhshp 的第三边境研究所 StrokePlus.net - Powerful Hotkey Boost | szhshp 的第三边境研究所 优雅地 Hack 一台黑苹果 | szhshp 的第三边境研究所 一杯关东煮 | szhshp 的第三边境研究所 Gitee x PicGo 管理图床 | szhshp 的第三边境研究所 Create Your Own Redux (Typescript) | szhshp 的第三边境研究所 Getting Started: Ionic + Capacitor + React + Typescript + Android | szhshp 的第三边境研究所 GraphQL: File Upload & Troubleshooting | szhshp 的第三边境研究所 吉祥航空随心飞刷票工具循环查票工具 | szhshp 的第三边境研究所 NVM Windows Portable Installation | szhshp 的第三边境研究所 NextJS x Typescript - Integration & Troubleshooting | szhshp 的第三边境研究所 全站点升级 - Project Titan | szhshp 的第三边境研究所 AWS-EC2-常见问题解决-Troubleshooting | szhshp 的第三边境研究所 Workbox-Getting Started | szhshp 的第三边境研究所 《时间简史》阅读笔记 | szhshp 的第三边境研究所 《时间的秩序》阅读笔记 | szhshp 的第三边境研究所 ESLint-常见问题解决-Troubleshooting | szhshp 的第三边境研究所 站点索引 | szhshp 的第三边境研究所 个人知识库搭建 - Hexo 实现 Github/Coding 持续集成 | szhshp 的第三边境研究所 BMOB-常见问题解决-Troubleshooting | szhshp 的第三边境研究所 React + Typescript: 开启 HMR/Hot Loader | szhshp 的第三边境研究所 Yarn & NPM | szhshp 的第三边境研究所 ESLint: Typescript + React + TSX 集成 | szhshp 的第三边境研究所 《10101》EP15:过年 2020 | szhshp 的第三边境研究所 Cmder-Usage | szhshp 的第三边境研究所 Redux-DOM not refreshed | szhshp 的第三边境研究所 React Semantic UI-CheatSheet | szhshp 的第三边境研究所 Typescript: Getting Started | szhshp 的第三边境研究所 Flutter-Getting Started | szhshp 的第三边境研究所 Typescript: Access window object with type check | szhshp 的第三边境研究所 VSC Extension Development-Create A Code Formatter Extension | szhshp 的第三边境研究所 OneNote Extension-Main API | szhshp 的第三边境研究所 TortoiseGit Win10 Icon not showing correctly | szhshp 的第三边境研究所 Mongoose: aggregate() 方法实现聚合函数 | szhshp 的第三边境研究所 React In Depth - React 源码解析 - render() & Fiber | szhshp 的第三边境研究所 MongoDB x Mongoose: 实现类似 Join 的功能 | szhshp 的第三边境研究所 Disqus 评论框改造工程-实现 Disqus 代理的 Serverless 服务 | szhshp 的第三边境研究所 GUI, CLI, Terminal, Shell, TTY, Console, Bash | szhshp 的第三边境研究所 Jest Async Best Practise: No Nested Async | szhshp 的第三边境研究所 关系型数据库与非关系型数据库优缺点分析 | szhshp 的第三边境研究所 New Edge & Chromium Error - Package is invalid: 'CRX_VERSION_NUMBER_INVALID' | szhshp 的第三边境研究所 选择 GraphQL 的 N 个理由 | szhshp 的第三边境研究所 StrokePlus - 鼠标手势神器的代码编写技巧 | szhshp 的第三边境研究所 嗨,好久不见 | szhshp 的第三边境研究所 Vue + ElementUI 集成 Vue Router | szhshp 的第三边境研究所 IE8 - Unknown Runtime Error Using innerHTML & Ajax | szhshp 的第三边境研究所 React: Handling Events | szhshp 的第三边境研究所 React-Navigation Integration with Redux | szhshp 的第三边境研究所 React: States is tricky | szhshp 的第三边境研究所 《10101》EP14:小剧场 | szhshp 的第三边境研究所 ColdFusion - Basic - arguments in cffunction | szhshp 的第三边境研究所
ColdFusion - Basic - cfc, cfcomponent, cffunction, cfinvoke | szhshp 的第三边境研究所
2019-01-01 · via szhshp 的第三边境研究所

Meta

目录

可以将一个 <cfcomponent> 当做一个class, 然后将 <cffunction> 当成一个方法

cffunction

格式

<cffunction 
    name = "method name" 
    access = "method access" 
    description = "function description" 
    displayName = "name" 
    hint = "hint text" 
    output = "yes|no" 
    returnFormat = "not specified|JSON|plain|WDDX" 
    returnType = "data type" 
    roles = "securityRoles" 
    secureJSON = "yes|no" 
    verifyClient = "no|yes">

cfcomponent

用于CFC声明

示例

<cfcomponent>
  <!--- 这里是一个函数funcwitharg,要求输入一个不可忽略的名为arg1的参数 --->
  <cffunction name="funcwitharg" returntype="Numeric">
    <cfargument name="arg1" type="Numeric" required="yes">
      <cfset arg1=#arg1#+1>
        <cfreturn arg1>
  </cffunction>

  <!--- 这里是一个函数funcwithoutarg,不需要输入参数直接返回10 --->
  <cffunction name="funcwithoutarg" returntype="Numeric">
    <cffunctionfreturn 10>
  </cffunction>
</cfcomponent>

参数说明

  • name

对应的函数的名称

  • returntype
  • output

可选, 函数也可以输出数据。 但是不常用, 设置成False还可以减少调用时出现的空白

cfargument

使用 <cfargument> 创建参数

参数说明

  • name
  • type
  • required

表示这个参数是不是不可忽略的

  • default

默认值, 如果没有传进参数的话会使用这个值

函数调用

调用函数有以下方法:

  1. 调用组建的方法

  2. 直接使用 cfinvoke 配合 cfinvokeargument 调用

  3. 调用实例的方法

  4. 使用 cfobject 创建一个实例然后将实例用作 cfinvokecomponent 属性, 然后配合 cfinvokeargument 调用(似乎是很多余的操作..)

  5. 使用 cfscript 实现

    1. 使用 cfobject 创建一个实例,然后通过实例调用
    2. 使用 cfobject 创建示例的过程也可以使用createObject()方法来替代

cfinvoke

对函数进行调用, 可以使用参数 注意在同一个文件里使用 <cffunction> 的话可以省去>的话可以省去外围的 <cfcomponent> 标签

<cfinvoke component="function" method="funcwitharg" returnvariable="return1">
    <cfinvokeargument name="arg1" value="3">
    </cfinvokeargument>
</cfinvoke>

参数说明

  • component

决定需要调用的函数所在的文件, component="function" 表示对应的函数写在 function.cfc 之中 实际上这里指的是路径

  • method

需要调用的函数的name的值

  • returnvariable

接收返回值的变量名称, 如果对应变量未定义则会自动新建

动态参数 Dynamic Arguments

很多时候调用函数一些参数不需要传递因为有默认值, 因此可以用以下方法赋值

#ck.getMetricTable(
    query = qInspectionCompletion,
    selectedOrg = bigquery.orgname,
    selectedSuborg = bigquery.suborg, 
    selectedSite = bigquery.location
)

几个要点:

  • 可以不用提供所有的值
  • 似乎在函数定义的时候不能设定对应的参数类型, 否则没有提供的参数会报类型检查错误(传过去的是null而不是特定值的错误)
  • 不需要按照参数的顺序提供参数

函数返回值cfreturn

直接写变量名就可以了, 不需要井号: <cfreturn varname>

cfscript

和JAVA中的用法类似 测试时发现需要将所有的参数按顺序传入

示例

    <cfobject name="obj" component="function"/>
    <cfset result2=obj.funcwitharg(4)/>
    <cfoutput>
        #result2#
    </cfoutput>
    <cfset result3=obj.funcwitharg(4,5)/>
    <cfoutput>
        #result3#
    </cfoutput>

function.cfc

<cfcomponent>
  <!--- 这里是一个函数funcwitharg,要求输入一个不可忽略的名为arg1的参数 --->
  <cffunction name="funcwitharg" returntype="Numeric">
    <cfargument name="arg1" type="Numeric" required="yes">
      <cfargument name="arg2" type="Numeric" required="no">

        <cfif isDefined("arg2")>
          <cfset arg1=#arg1#+#arg2#>
            <cfelse>
              <cfset arg1=#arg1#+1>
        </cfif>
        <cfreturn arg1>
  </cffunction>
</cfcomponent>

cfObject

示例

<cfset object=createObject("component","function") />
<cfoutput>
  #object.funcwitharg(1,2,3)#
  #object.funcwitharg(arg1="1",arg3="5")#
</cfoutput>