//
// main.m
// LessonBlock
// block语句
// Created by lanouhn on 14-8-9.
// Copyright (c) 2014年 vaercly@163.com 陈聪雷. All rights reserved.
//
//在其他.m文件中定义的全局变量要想在本.m文件中使用, 则需在本文件的.m中要用关键字extern修饰该变量.要是相同的全局变量分别在自身.m文件中访问, 则都要用static关键字修饰该变量
#import <Foundation/Foundation.h>
int sumValue(int x, int y) {
return x + y;
}
int b = 10;//全局变量b
int main(int argc, const char * argv[])
{
@autoreleasepool {
// 1 int (^) (int x, int y) block变量的类型
// 2 block block变量的名字
// 3 ^(int x, int y) {
// return x + y;
// }
// block变量的初值,用来存储函数, 所以给block赋值时, 赋的是整个函数的实现
#pragma mark - block语句
//block语句求和
int (^block)(int x, int y) = ^(int x, int y) {
return x + y;
};
//当把函数的实现赋给block变量之后, block变量就可以当做函数名来使用
int sum = block(5, 10);
NSLog(@"sum = %d", sum);
//block语句求最大值
int (^maxValue)(int x, int y) = ^(int x, int y) {
return x > y ? x : y;
};
int max = maxValue(5, 10);
NSLog(@"max = %d", max);
//block语句求最小值
__block int a = 10;//需加__block才能在block语句中使用, 若不加, 则在block中会把a当做常量来使用, 加上block则告诉编译器这是一个变量
int (^minValue)(int x, int y) = ^(int x, int y) {
//当在block内部使用block外部定义的(局部变量)时, 若变量没有被__block修饰, 则在block内部是readonly的, 不能对它修改, 若想对它修改, 变量前必须有__block修饰
//__block的作用告诉编译器, 编译时在block内部不要把外部变量当做常量使用, 依然当做变量使用
//若在block中访问全局变量不需要__block修饰
a = 20;
b = 30;
return x < y ? x : y;
};
int min = minValue(5, 10);
NSLog(@"min = %d", min);
//block语句输出
void (^outPut)() = ^() {
NSLog(@"Hello");
};
outPut();
//typedef 重新定义block类型
typedef void (^BLOCK)();
BLOCK sayHi = ^() {
NSLog(@"Hello World");
};
sayHi();
}
return 0;
}
相关推荐
基于天问block编译环境下ASRPRO语音芯片程序编写教程(一)软件下载与基础程序语句篇
ASRPRO语音芯片作为近期推出的一款语音识别芯片,具有功能强大,应用潜力大,可视化程序程序编写简便的优势,本教程将初步介绍如何使用天问block编程软件对该语音芯片进行基础的程序编写
Block的语法
一.Block语法 1.Block很像函数指针,这从Block的语法上就可以看出。Block的 原型: 返回值 (^名称)(参数列表) 2.Block的定义 ^ 返回值类型 (参数列表) { 表达式 } 其中返回值类型和参数列表都可以省略,最简单的Block就是: ^{ ; }; 3.一般的定义就是: 返回值 (^名称)(参数列表) = ^(参数列表){代码段}; 4.为了方
Android——Handler详解
1. 简介 Handler是一套 Android 消息传递机制 可以说只要有异步线程与主线程通信的地方就一定会有 Handler。 在多线程的应用场景中,将工作线程中需更新UI的操作信息 传递到 UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理 使用Handler消息传递机制主要是为了多个线程并发更新UI的同时,保证线程安全 2. 相关概念解释 Handler、Message、Message Queue、Looper Android消息机制: 以Handler的sendMes
【block编程第一篇】 block编程热点介绍(官方文档翻译的)
源自apple官方,主要分为下面五个文章: block介绍(Introduction)点击打开原文 1. 开始使用block(Getting Started with Blocks) 2. block概念综述(Conceptual Overview) 3. 声明和创建block(Declaring and Creating Blocks) 4. block和变量(Blocks and
AI Agent辅助企业财务分析与预测
企业财务分析与预测是企业管理中至关重要的环节,准确的财务分析与预测能够帮助企业管理者做出明智的决策,合理规划资源,降低风险。然而,传统的财务分析与预测方法往往依赖于人工经验和简单的统计模型,存在效率低、准确性差等问题。随着人工智能技术的飞速发展,AI Agent作为一种智能的软件实体,能够自主地感知环境、做出决策并采取行动,为企业财务分析与预测带来了新的解决方案。
从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战
本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。
iOS深入学习(Block全面分析)
2019独角兽企业重金招聘Python工程师标准>>> ...
matlab电子科技大学数学实验期末模拟35道(1)
【代码】matlab电子科技大学数学实验期末模拟35道。
iOS | Blocks
概要 Blocks时c语言的扩充功能,就是带有自动变量(局部变量)的匿名函数 模式 语法: ^ 返回值类型 参数列表 表达式 例如:^int (int count) {return count + 1;} 可省略返回值类型,Block语法将按照return语句的类型返回int型返回值 ^(int count) {return count + 1;} 如果不使用参数,参数列表也可省略 ^{print...
多算法数据预测——BP、ELM、LSTM、BiLSTM和SAELSTM,附Matlab源码
本文将为大家介绍基于BP、ELM、LSTM、BiLSTM和SAELSTM多种算法的数据预测,并提供相应的Matlab源码。SAELSTM算法是一种结合自动编码器和LSTM神经网络的深度学习方法,用于时间序列数据预测。ELM算法是一种单层前向神经网络,在单次训练过程中直接产生输出权重,从而具有快速学习和良好推广性能。多算法数据预测——BP、ELM、LSTM、BiLSTM和SAELSTM,附Matlab源码。总体来看,采用多种算法进行数据预测可以提高预测准确率,并可根据不同场景选择适合的算法。
①电子产品拆解分析-暖手宝
电子产品拆解分析-暖手宝 ①按键三档调温暖手; ②长按进入氛围呼吸灯; ③安卓接口充电以及支持USB输出;
进程语句和BLOCK语句有什么不同?某一个电路是用BLOCK语甸来描述的,其功能是否也可以用一个进程语句来描述?...
进程语句和BLOCK语句是在不同的编程范式中使用的不同概念。 进程语句是一种并发编程模型,它描述的是一个进程在执行过程中的状态和行为。在进程语句中,进程可以同时执行多个不同的行为,并且不同的行为之间可以互相通信、交换信息。 BLOCK语句是一种结构化编程的概念,用于将多个语句组合成一个块,形成一个独立的执行单元。在BLOCK语句中,多个语句可以按照顺序依次执行,也可以根据特定条件选择性地执行其中的...
智能车图像处理16-进阶篇8--右环岛状态机与补线
这篇文章主要讲述智能车竞赛中如何判断右环岛并且进行状态补线。
block语句块
定义: ^(){ nslog(@"我是block"); }; 就这样定义好了一个简单的语句块(无返回值无形参) 接着给语句块变量赋值。 void(^myBlock)()=^(){ nslog(@"我是block"); }; 怎样使用呢?看管请看下面↓↓ void main() { myBlock(); } 是不是很简单?因为我不喜欢把简单的东西复杂化。 如何用计算两个整数的
高通MBIM拨号流程简述
高通平台MBIM流程简述
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
iOS 快语句(block)浅析
一,直接上code: // 在快语句中要改变快语句外面的值,有三种情况:static,__block与全局变量 __block int a = 1; // 定义快语句 void (^hgBlock)() = ^{ a = 10; NSLog(@"我在快语句中等你...
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
java 静态语句块(static block)
java 静态语句块(static block)
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
48.windbg---.block 语句块(windbg script)
.block 关键字不执行任何动作;只是用来引入一个语句块 Commands ; .block { Commands } ; Commands 由大括号括住每个语句块。当进入每个语句块时,所有块中的别名都被重新计算。如果你在块中某个命令处修改了别名的值,往下的命令不会使用新的别名值,除非它们处在一个下属子语句块中 如果你希望创建一个语句块只是为了计算别名,你应该带上
ios开发 block语句块
ios开发 block语句块 1.block 理解为匿名函数 2.block变量的定义 //定义block变量,^表示定义block //技巧:函数名左右加括号,在函数名前面在加^ void (^block)(); //定义block语句块,存储到了block变量中 block=^void () { ...
objective-c block语句
1. 无参数无返回值的block代码 void (^myblock)() = ^{ NSLog(@"block"); }; //调用代码myblock(); 2. 有参数有返回值的block的代码 int (^sumblock)(int , int) = ^(int a , int b){ return a+b; }; //调用方法...
python全栈04-----include和set语句,with(全局和局部),模板的继承,block
include语句 include语句可以把一个模板引入到另外一个模板中,类似于把一个模板的代码copy到另外一个模板的指定位置 {% include '要引入的html文件.html'%} 主体内容 {% include 'footer.html'%} 例子:我们创建一个py文件 from flask import Flask,render_template app = Flask(__name__) @app.route('/') def index(): return r
PL/SQL 语句块(Block)
-- Start 下面是一个语句块的例子。 > -- 我们可以给语句块起个名字 DECLARE -- 声明部分 VAR1 INT := 1; VAR2 INT; BEGIN -- 可执行部分 VAR2 := VAR1 / 0; EXCEPTION -- 异常处理部分 WHEN ZERO_DIVIDE THEN VAR2 := NULL; END; /
IOS基础_Block语法的简单使用
开始学IOS的时候没怎么接触过block语句,在后来用到的越来越多,就不得不学了,刚开始理解比较困难的,然后自己做了一个例子就慢慢理解了
Ansible中Playbook的逻辑控制语句-block
@Description: Playbook的逻辑控制语句-block。
IOS基礎_Block語法的簡單使用
開始學IOS的時候沒怎麼接觸過block語句,在後來用到的越來越多,就不得不學了,剛開始理解比較困難的,然後自己做了一個例子就慢慢理解了,www.ios5.online不說廢話了,上代碼: 正常的簡單地申明調用一個block語句是這樣的: //申明 int (^yxpBlock)(int, int) =^(int a ) {return a*a ;}; 說明:返回值(...
未设置对象变量或with block变量_Python之图解with语句
在我们使用Python的时候,常使用到如下的代码块:# 文件读取 with open(file, 'r') as f: # CODE BLOCK # # 梯度计算 with tf.GradientTape() as g: # CODE BLOCK #在很多场景中,使用with语句来可以让我们可以更好地来管理资源和简化代码,它可以看做是对try/finally模式的简化。它原理上是...
2万+



被折叠的 条评论
为什么被折叠?



