source: doc/theses/jiada_liang_MMath/test.swift@ 520fa9e

Last change on this file since 520fa9e was 7568e5c, checked in by JiadaL <j82liang@…>, 13 months ago

Minor update on the thesis (add auto initialization and update future work

  • Property mode set to 100644
File size: 1.8 KB
Line 
1struct S {
2 var i : Int, j : Int
3}
4var s = S( i : 3, j : 5 )
5enum ADT {
6 case I(Int) // int
7 case F(Float) // float
8 case S(S) // struct
9}
10var adt : ADT
11adt = ADT.I( 3 ); print( adt )
12adt = .F( 3.5 ); print( adt )
13adt = .S( s ); print( adt )
14switch adt {
15 case .I(let i): print( i )
16 case .F(let f): print( f )
17 case .S(let s): print( s.i, s.j )
18}
19
20enum Week: Comparable {
21 case Mon, Tue, Wed, Thu, Fri, Sat, Sun // unit-type
22 func isWeekday() -> Bool { return self <= .Fri } // method
23 func isWeekend() -> Bool { return .Sat <= self } // method
24};
25var week : Week = Week.Mon;
26
27if week == .Mon {
28 print( week );
29}
30if week <= .Fri {
31 print( "weekday" );
32}
33if .Sat < week {
34 print( "weekend" );
35}
36switch week { // exhaustive
37 case .Mon: print( "Mon" )
38 case .Tue: print( "Tue" )
39 case .Wed: print( "Wed" )
40 case .Thu: print( "Thu" )
41 case .Fri: print( "Fri" )
42 case .Sat: print( "Sat" )
43 case .Sun: print( "Sun" )
44}
45
46enum WeekI: Comparable, CaseIterable {
47 case Mon, Tue, Wed, Thu, Fri, Sat, Sun // unit-type
48};
49var weeki : WeekI = WeekI.Mon;
50if weeki <= .Fri {
51 print( "weekday" );
52}
53for day in WeekI.allCases {
54 print( day, terminator:" " )
55}
56print( "" )
57
58print( WeekI.allCases.count, WeekI.allCases )
59
60enum WeekInt: Int, CaseIterable {
61 case Mon, Tue, Wed, Thu = 10, Fri = 14,
62 Sat = 4, Sun // auto-incrementing
63};
64var weekInt : WeekInt = WeekInt.Mon;
65print( WeekInt.Thu.rawValue );
66for day in WeekInt.allCases {
67 print( day.rawValue, terminator:" " )
68}
69print( "" )
70
71enum WeekStr: String, CaseIterable {
72 case Mon = "MON", Tue, Wed, Thu, Fri,
73 Sat = "SAT", Sun
74};
75for day in WeekStr.allCases {
76 print( day.rawValue, terminator:" " )
77}
78print( "" )
79
80if let opt = WeekInt( rawValue: 0 ) {
81 print( weekInt.rawValue, opt )
82} else {
83 print( "invalid weekday lookup" )
84}
85
86// Local Variables: //
87// compile-command: "swift test.swift" //
88// End: //
Note: See TracBrowser for help on using the repository browser.