Swift 的基本数据类型 常量和变量、String 的基本操作

/*


   Swift 的基本数据类型 常量和变量、String  三个

*/

//  Created by 周双建 on 15/12/16.

//  Copyright © 2015周双建. All rights reserved.

//


import UIKit

import Foundation


class ViewController: UIViewController {


    

    

    override func viewDidLoad() {

        

        super.viewDidLoad()

        /*

           Swift  常量的声明使用  let

                     变量的声明使用  var  (次关键词,被用与好多中开发语言。例如:HTMLAPS.net)

           常量和变量的区别:常量已但被定义是不可改变的

                           变量定义后是可改变的

        */

        //声明一个常量

        let  MaxCount = 20

        print(MaxCount)

        

        //声明一个变量

        var  MixCount = 0

        MixCount = 10//常量是不可以这样写的

        print( MixCount)

        

        // 在同一行可以声明多个变量或者常量 ,变量或者常量之间用分隔

        //变量

        var BodyCount :Int =10  , GirlCount : Int = 20 , MailCount :Int =2

        print([BodyCount , GirlCount ,MailCount])

        /*

           打印结果:

           [10, 20, 2]

        */

        // 常量

        let Body = 20 , gril = 10 ,mail = 0

        print([Body , gril ,mail])

        /*

           打印结果:

           [20, 10, 0]

        */

/****************************************************************/

        // 带类型的常量或者变量的声明 

        // 注意:在声明常量或者变量的时候,一般不带其类型,因为 Swift可以根据你给的值,来确定其类型。但也可以指定其,类型

        //常量int

        let Count_ZSJ : Int = 10

       // let Count_ZSJ = 10  和上面的是等同的

        // 其他类型

        let  Str : String = " 成功"

        let  Double_ZSJ :Double =5.20

        let  Float_ZSJ :Float =5.2

        let  Integer_ZSJ : NSInteger = 3

        //注意在声明后,不可更改其类型

        let  Str_ZSJ = 20

        // Str_ZSJ = "失败这样是不对的。Str_ZSJ= 20这已经定义了 Str_ZSJ的类型了 int  ,而  Str_ZSJ = "失败"是将一个字符串给Str_ZSJ

        // 变量的道理和常量是一样的,就不在写了

        

/****************************************************************/

        //常量和变量的命名规则

        /*

           Swift 中可以用任何字符作为常量和变量的名字,包括 Unicode字符

           Unicode 字符:

            ¡¢£¤¥¦§¨©ª«¬ ®¯00B0°±²³´µ¶·¸¹º»¼½¾¿00C0ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß00E0àáâãäåæçèéêëìíîï00F0ðñòóôõö÷øùúûüýþÿ0100ĀāĂ㥹ĆćĈĉĊċČčĎď0110ĐđĒēĔĕĖėĘęĚěĜĝĞğ0120ĠġĢģĤĥĦħĨĩĪīĬĭĮį0130İıIJijĴĵĶķĸĹĺĻļĽľĿ0140ŀŁłŃńŅņŇňʼnŊŋŌōŎŏ0150ŐőŒœŔŕŖŗŘřŚśŜŝŞş0160ŠšŢţŤťŦŧŨũŪūŬŭŮů0170ŰűŲųŴŵŶŷŸŹźŻżŽžſ0180ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏ0190ƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟ01A0ƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯ01B0ưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ01C0ǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏ01D0ǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟ01E0ǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯ01F0ǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ

          这是部分,还有很多。

         方法:

          option  +  XXOO  就可以出现

        */

        

        let 成功 = 30

        let µ = "成功QQ"

        let œ = 520

        

        /*注意:

           1、常量与变量名不能包含数字符号(+ - * /等)、箭头、保留的 Unicode、连接线、制表符

           2、不能以数字开头,但其他地方可以使用

           3 Swift 尽量命名不要和一些关键字一样,如果。一定要用也是可以的,那就需要反引号来包含

        */

        //错的

        //let  5g = 20

        

        // 对的

        let  g5 = 20

        

        //  使用关键词做名字

         let `let` = 520

        /*

           注释:反引号是 波浪建在英文编辑下,打出的

        */

/*****************************************************************/

        //日志的输出

        /*

           OC里面 我们有 printf NSlog 

           Swift 里面是  printNSlog     注意 println已经不在使用

        */

        

         print(`let`)

         NSLog("%d",`let`)

         NSLog( "成功QQ")

        /*

           打印结果:

        2015-12-16 09:41:32.541 Swift_013[1745:78097] 520

        2015-12-16 09:41:32.541 Swift_013[1745:78097] 成功QQ

        

         可见,NSLog打印带有日期,这就便于调试

        */

        

        // 字符串的拼接输出

        /*

          字符的拼接输出,这需要使用 Swift的插值语法。其形式是:

          在字符串内部使用  \(变量名)

        */

        let b = true

        let name = "成功QQ"

        let number = 520

        print("注意:\(name)的标语是\(number)\(b)")

        /*

          打印成功:

                 注意:成功QQ吧的标语是520true

        */

/***************************************************************/

        //下面是字符串的一些炒作

        // 声明一个字符串

        let XX  ="I  LOVE  YOUR MONEY"

        // 我们遍历一个字符串

        // 获取字符串的长度

        let Count = XX.lengthOfBytesUsingEncoding(4)

        print(Count)

        /*

           这样写是错误的

        for ch in  XX {

        print(ch)

        }

        因为 String 不符合 SequenceType。但是,您可以使用 characters属性 String characters 返回 String.CharacterView,顺应了 SequenceType

        */

        // 是对的

        for ch  in  XX.characters {

            print(ch)

        }

        

        /*

           打印结果:

        I

        

        

        L

        O

        V

        E

        

        

        Y

        O

        U

        R

        

        M

        O

        N

        E

        Y


        */

/**************************************************************/

        // 字符串的拼接

        let  c = "成功"

        let  s = "失败"

        print(c+s)

        /*

        打印:

        成功失败

        

        */

        

/****************************************************************/

     //字符串与其他类型的进行拼接

        let name_S = "成功QQ"

        let age = "\(name_S) 的年龄是6"

        print(age)

        

        let co = 7

        

        print(name_S, co)

        /*

          打印结果:

        成功QQ的年龄是6

        成功QQ 7

        */

        

/******************************************************************/

       //判断字符串是否为空

        var str = "d"

        print(str.isEmpty ?"":"")

       // 判断字符串是否包含某个字符

        var sh = "dH"

        print(str.containsString(sh))

        /*

          true

        */

        //     第一种  判断字符串是否相等

        print( str == sh )

        /*

          false

        */

        //    第二种   comper 比较

        /*

        public enum NSComparisonResult : Int {

        

        case OrderedAscending   升序

        case OrderedSame        相等

        case OrderedDescending  降序

        }

        */

        

        if str.compare(sh).hashValue ==1 {

            print("相等")

        }else if str.compare(sh).hashValue ==0 {

            print("小于")

        }else{

            print("大于")

        }

        print( str.compare(sh).hashValue )

        /*

           通过 枚举的  hashValue 获取枚举的

           str    sh 相比  得出结果是   str 是大还是小

        */

        /*

          打印结果:

             NSComparisonResult

        */

        // 第三种 比较

        print(str > sh)

/*************************************************************/

        //判断字符串的头和尾

        /*

           hasPrefix 

           hasSuffix 

         */

        var  My_Str ="http://www.baidu.com.image.png"

        if  My_Str.hasPrefix("http://") {

            print("是网址")

        }

        if My_Str.hasSuffix(".png") {

            print("是和图片相关的")

        }

/***************************************************************/

        //字符串的大小写转换

        var str_zsj ="I  love  Your  Qian  Very Much "

        // 转大写

        print( str_zsj.uppercaseString )

        /*

        I  LOVE  YOUR  QIAN  VERY MUCH

        */

        //转小写

        print(str_zsj.lowercaseString )

        /*

         i  love  your  qian  very much

        */

/****************************************************************/

        //字符串与其他类型的转换

        // 整形转字符串,使用插值法

        var QB = 23

        let HJ = ("\(QB)")

        

        // 字符串转其他,可直接转

        var  HK = "34eeeeffff"

        let Mn = Int(HK)

        /*

           注意:

           HK.toint() 该方法已经不再了

        */

        

        //利用 OC的方法转换

        let BN :NSString = HK

        let VB = BN.intValue

        

        let Unicode = HK.unicodeScalars

        print(Unicode)// 34 时将其转化为 UniCode 编码

        //从哪个位置获取,字符串

        let bm : NSString = HK

        let AB = bm.substringFromIndex(1)

        print(AB)

        //从开始,到第三个位子

        let Gh = bm.substringToIndex(3)

        // Do any additional setup after loading the view, typically from a nib.

    }


    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }



    

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swift中,属性分为常量属性(常量存储属性)、变量属性(变量存储属性)和计算属性(计算型属性)。 1. 常量属性:用let关键字定义的属性,只能在初始化时被赋值一次,并且在之后的运行过程中不允许被修改。常量属性通常用于存储不变的值,例如表示圆周率的常量属性。 2. 变量属性:用var关键字定义的属性,可以在初始化后被赋值多次,并且在之后的运行过程中也可以被修改。变量属性通常用于存储可变的值,例如表示用户年龄的变量属性。 3. 计算属性:没有直接存储值,而是提供了一个getter和一个可选的setter来间接获取和设置其他属性或变量的值。计算属性可以用于实现一些复杂的逻辑,例如根据用户输入的值计算出其他相关的属性值。 例如,下面是一个包含常量属性、变量属性和计算属性的简单Swift类: ``` class Circle { let pi = 3.14 // 常量属性 var radius: Double // 变量属性 var area: Double { // 计算属性 return pi * radius * radius } init(radius: Double) { self.radius = radius } } ``` 其中,Circle类包含了一个常量属性pi表示圆周率,一个变量属性radius表示圆的半径,以及一个计算属性area表示圆的面积,它的值由pi和radius计算而来。在初始化时,radius属性被赋予了一个初始值,之后也可以通过修改radius属性的值来计算不同半径的圆的面积。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值